讲师中心 微信公众号
AI工具推荐 视频效率加速

高性能电商平台 外贸电商系统 高负载高并发,高效,高速,分布,高性能 电商系统

星瑶吖_5979

星瑶吖_5979

发布时间:2016-05-25 17:01:52

|

1725人浏览过

|

来源于php中文网

原创

高性能电商平台 外贸电商系统 高负载高并发,高效,高速,分布,高性能 电商系统
有了以下各种技术与优化,再也不为丢单而烦恼;用了此系统老板您赚钱就可高枕无忧啦!

核心特点如下:
数据库读写分离加速,memcached 缓冲加速,HTML静态页面加速

图片加水印,图片服务器分离,图片支持CDN,镜像服务器DNS轮循

多语言支持,多货币支持

订单报表统计分析,产品价格优惠处理

可灵活配置页面布局,多服务器负载均衡布局

订单批量打印,订单导出,数据分析导出,安全性高可靠性强,各种细节的优化处理

演示前台:http://demo.hecart.com/
演示后台账号:demo
演示后台密码:demo
演示后台:http://dadm.hecart.com/

网站结构采用:LINUX + NGINX + PHP + MYSQL + MEMCACHE

1. [文件]     index.php

<?php
//Version
define('VERSION', '1.0.0');

//Configuration
define('DIR_SITE', empty($_SERVER['DOCUMENT_ROOT']) ? dirname(__FILE__) : $_SERVER['DOCUMENT_ROOT']);
define('DIR_ROOT', empty($_SERVER['DOCUMENT_ROOT']) ? dirname(dirname(__FILE__)) : dirname($_SERVER['DOCUMENT_ROOT']));
require(DIR_ROOT . '/config/start.php'); //loading start for here

//Cache OR static HTML file
if (true)
{
	//此处加速适合于多语言多货币
	$_GET['language'] = wcore_utils::get_var('language', '', 'c');
	$_GET['currency'] = wcore_utils::get_var('currency', '', 'c');
	$speed            = new wcore_speed('mem');
	unset($_GET['language'], $_GET['currency']);
}
else
{
	//此处加速仅适应于单语言单货币
	$puid  = ($_SERVER["REQUEST_URI"] == '/' || $_SERVER["REQUEST_URI"] == $_SERVER["SCRIPT_NAME"]) ? 'index.html' : $_SERVER["REQUEST_URI"];
	$speed = new wcore_speed(((strpos($puid, '?') === false) ? 'file' : 'mem'), 0, $puid);
}

$html = $speed->get_data();
if (!empty($html))
{
	exit($html);
}

//Startup
require(DIR_ROOT . '/system/startup.php');

//Application Classes
require(DIR_ROOT . '/system/library/customer.php');
require(DIR_ROOT . '/system/library/affiliate.php');
require(DIR_ROOT . '/system/library/currency.php');
require(DIR_ROOT . '/system/library/tax.php');
require(DIR_ROOT . '/system/library/weight.php');
require(DIR_ROOT . '/system/library/length.php');
require(DIR_ROOT . '/system/library/cart.php');

//Registry
$registry = new Registry();

//Loader
$loader = new Loader($registry);
$registry->set('load', $loader);

//Config
$config  = new Config();
$mem_cls = new modules_mem();
$registry->set('config', $config);

$store_info = get_store_info($mem_cls);
if (empty($store_info))
{
	$config->set('config_store_id', 0);
	$config->set('config_url', 'http://' . DOMAIN_NAME . '/');
	$config->set('config_ssl', 'https://' . DOMAIN_NAME . '/');
}
else
{
	$config->set('config_store_id', $store_info['store_id']);
}

//Settings
$res = $mem_cls->mem_sql("SELECT * FROM " . DB_PREFIX . "setting WHERE store_id = " . intval($config->get('config_store_id')), DB_GET_ALL);
foreach ($res as $setting)
{
	$config->set($setting['key'], ($setting['serialized']) ? unserialize($setting['value']) : $setting['value']);
}

//Url
$url = new Url($config->get('config_url'), $config->get('config_use_ssl') ? $config->get('config_ssl') : $config->get('config_url'));
$registry->set('url', $url);

//Log
$log = new Log($config->get('config_error_filename'));
$registry->set('log', $log);

//Error Handler
function error_handler($errno, $errstr, $errfile, $errline)
{
	global $log, $config;
	switch ($errno)
	{
		case E_NOTICE:
		case E_USER_NOTICE:
			$error = 'Notice';
			break;
		case E_WARNING:
		case E_USER_WARNING:
			$error = 'Warning';
			break;
		case E_ERROR:
		case E_USER_ERROR:
			$error = 'Fatal Error';
			break;
		default:
			$error = 'Unknown';
			break;
	}

	if ($config->get('config_error_display'))
	{
		echo '<b>' . $error . '</b>: ' . $errstr . ' in <b>' . $errfile . '</b> on line <b>' . $errline . '</b>';
	}

	if ($config->get('config_error_log'))
	{
		$log->write('PHP ' . $error . ':  ' . $errstr . ' in ' . $errfile . ' on line ' . $errline);
	}

	return true;
}

set_error_handler('error_handler');

//Request
$request = new Request();
$registry->set('request', $request);

//Response
$response = new Response();
$response->addHeader('Content-Type: text/html; charset=utf-8');
$response->setCompression($config->get('config_compression'));
$registry->set('response', $response);

//Session
$session = new wcore_session(SESSION_SAVE_TYPE);
$registry->set('session', $session);

//Language Detection
$languages = get_languages($mem_cls);
$code      = $config->get('config_language');
if (isset($request->cookie['language']) && isset($languages[$request->cookie['language']]) && $languages[$request->cookie['language']]['status'])
{
	$code = $request->cookie['language'];
}
else //自动检测语言
{
	if (isset($request->server['HTTP_ACCEPT_LANGUAGE']) && ($request->server['HTTP_ACCEPT_LANGUAGE']))
	{
		$browser_languages = explode(',', $request->server['HTTP_ACCEPT_LANGUAGE']);
		foreach ($browser_languages as $browser_language)
		{
			foreach ($languages as $key => $value)
			{
				if ($value['status'])
				{
					$locale = explode(',', $value['locale']);
					if (in_array($browser_language, $locale))
					{
						$code = $key;
					}
				}
			}
		}
	}
	$request->cookie['language'] = $code;
	wcore_utils::set_cookie('language', $code, 365);
}
$config->set('config_language_id', $languages[$code]['language_id']);
$config->set('config_language', $languages[$code]['code']);

//Language
$language = new Language($languages[$code]['directory']);
$language->load($languages[$code]['filename']);
$registry->set('language', $language);

//Document
$registry->set('document', new Document());

//Customer
$registry->set('customer', new Customer($registry));

//Affiliate
$registry->set('affiliate', new Affiliate($registry));
if (isset($request->get['tracking']) && !isset($request->cookie['tracking']))
{
	wcore_utils::set_cookie('tracking', $request->get['tracking'], 365);
}

//Currency
$registry->set('currency', new Currency($registry));

//Tax
$registry->set('tax', new Tax($registry));

//Weight
$registry->set('weight', new Weight($registry));

//Length
$registry->set('length', new Length($registry));

//Cart
$registry->set('cart', new Cart($registry));

//Encryption
$registry->set('encryption', new Encryption($config->get('config_encryption')));

//Front Controller
$controller = new Front($registry);

//Router
$action = new Action(isset($request->get['route']) ? $request->get['route'] : 'common/home');

//Dispatch
$controller->dispatch($action, new Action('error/not_found'));

//Output
if (defined('WCORE_SPEED'))
{
	$html = $response->render();
	$speed->set_data($html);
	unset($speed);
	echo($html);
}
else
{
	$response->output();
}
?>

2. [文件]     setting.php

<?php
/**
 * 慧佳工作室 -> hoojar studio
 *
 * 模块: $Id: config.php 1 2012-11-20 05:55:12Z Administrator $
 * 简述: 网站各大参数设置 (注此文件需COPY一份到此目录下并改名为setting.php)
 * 作者: woods·zhang  ->  hoojar@163.com
 *
 * 版权 2006-2013, 慧佳工作室拥有此系统所有版权等知识产权
 * Copyright 2006-2013, Hoojar Studio All Rights Reserved.
 *
 * 设置出错等级
 */
mb_internal_encoding('UTF-8');								//系统使用默认字符集为UTF-8
ini_set('error_reporting',	E_ALL | E_STRICT);				//出错等级
ini_set('display_errors',	isset($_GET['error']) ? 1 : 1);	//是否显示出错信息0关1开
ini_set('date.timezone',	'Asia/Shanghai');				//设置时区

/**
 * 执行文件的文件名与文件路径
 */
$pinfo = pathinfo($_SERVER['SCRIPT_FILENAME']);
define('EXEC_PATH',	$pinfo['dirname']);						//执行文件所在的全路径
define('EXEC_FILE',	$pinfo['basename']);					//执行文件的名称含扩展名
define('EXEC_EXT',	$pinfo['extension']);					//执行文件的扩展名
define('EXEC_NAME',	strtok(EXEC_FILE, '.'));				//执行文件名不含扩展名
unset($pinfo);

/**
 * 图片与JS本要加载或CDN加载开关
 */
define('USE_ISLOCAL_IMG',		0);		//是否使用本机静态文件(图片)
define('USE_ISLOCAL_JS2CSS',	1);		//是否使用本机静态文件(JS,CSS)

/**
 * 提升浏览者速度
 */
define('COMPRESS_HTML',		true);		//是否压缩HTML,为真且不出错展示关闭则对HTML进行压缩(注:如果代码写得较乱者,压缩可能会无法展示)
define('COMPRESS_JS2CSS',	true);		//是否压缩JS与CSS代码,为真且不出错展示关闭则对HTML进行压缩(注:如果代码写得较乱者,压缩可能会导致无法正常执行)

/**
 * 系统常规设置
 */
define('PRICE_ROUND',		-1);		//价格四舍五入,小于0则不4舍5入,大于等于0则4舍5入到几位小数
define('SESSION_SAVE_TYPE',	'db');		//SESSION采取哪种类型与存储长度:db(max:65535) mdb(max:255) mem(max:unlimit) file(max:unlimit) dir(max:unlimit)

define('SPEED_DATA',		true);		//是否启用加速数据服务将HTML缓冲起来或生成静态文件
define('SPEED_DATA_EXPIRE',	30);		//加速数据有效期(单位分钟)

define('MEM_CACHED',		true);		//定义MEMCACHED是否有效
define('MEM_ASYN_SQL_NUM',	100);		//当异步存储了SQL条数达到此数就执行SQL

define('SQL_DEBUG',			false);		//测试SQL调试开关(true or false)
define('SQL_ERROR_FOR_TIP',	false);		//SQL语句执行出错用wcore_tip来展示

define('LOGIN_ERR_NUM',		3);			//登录出错最多可多少次后就锁帐号
define('LOGIN_PASS_HOUR',	6);			//登录出错间隔多少小时内不能登录

define('SITE_MD5_KEY',		'*#6@9');	//网站MD5密匙
define('IMAGES_PATH',		'/img/');	//产品图片相对于www目录而言的相对文件路径
define('DOMAIN_NAME',		isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'hecart.com');//当前域名

/**
 * HTTP URL
 */
define('HTTP_STORE',	'http://w.hecart.com/');		//商城HTTP主页地址
define('HTTPS_STORE',	'https://w.hecart.com/');		//商城HTTPS主页地址
define('DIR_IMAGE',		DIR_ROOT . '/www' . IMAGES_PATH);	//商品图片存储路径

/**
 * 数据库读取类型
 */
define('DB_PREFIX',		'he_');					//数据库表前缀
define('DB_GET_ONE',	'fetch_one');			//获取一个数据
define('DB_GET_ROW',	'fetch_row');			//获取一条数据
define('DB_GET_ALL',	'fetch_all');			//获取多条数据
define('DB_GET_PAIRS',	'fetch_pairs');			//获取一对数据

/**
 * 数据库主库,一般用于写入数据
 */
$db_server						= array();		//数据库服务器连接名称
$db_server['master']['dbtype']	= 'mysqli';		//数据库连接类型
$db_server['master']['host']	= 'localhost';	//数据库服务器主机
$db_server['master']['port']	= 3306;			//数据库服务器主机端口
$db_server['master']['user']	= 'root';		//数据库用户名
$db_server['master']['pwd']		= '123456';		//数据库密码
$db_server['master']['dbname']	= 'hecart';		//数据库名
$db_server['master']['charset']	= 'utf8';		//数据库字符集
$db_server['master']['pconnect']= false;		//是否持续链接数据库

/**
 * 数据库从库,一般用于只读取数据
 */
$db_server['slave']['dbtype']	= 'mysqli';		//数据库连接类型
$db_server['slave']['host']		= 'localhost';	//数据库服务器主机
$db_server['slave']['port']		= 3306;			//数据库服务器主机端口
$db_server['slave']['user']		= 'root';		//数据库用户名
$db_server['slave']['pwd']		= '123456';		//数据库密码
$db_server['slave']['dbname']	= 'hecart';		//数据库名
$db_server['slave']['charset']	= 'utf8';		//数据库字符集
$db_server['slave']['pconnect']	= false;		//是否持续链接数据库
define('DB_SERVERS', json_encode($db_server));
unset($db_server);

/**
 * 缓冲MEMCACHED服务器
 */
define('MEM_USE',		false);			//是否开启使用MEMCACHED服务器
define('MEM_PORT',		11211);			//MEMCACHED单机服务器端口号
define('MEM_EXPIRE',	30);			//MEMCACHED服务器存储数据的有效期,以分钟为单位
define('MEM_PREFIX',	DOMAIN_NAME);	//存储MEMCACHED数据时KEY的前缀
$mem_servers	= array();
$mem_servers[]	= '127.0.0.1:11211';	//MEMCACHED服务器主机1:端口
$mem_servers[]	= '127.0.0.1:11211';	//MEMCACHED服务器主机2:端口
$mem_servers[]	= '127.0.0.1:11211';	//MEMCACHED服务器主机3:端口
define('MEM_SERVERS', json_encode($mem_servers));
unset($mem_servers);

/**
 * 网站图片主机域名(转换图片地址为网站实际对应的地址或CDN地址)
 */
$img_urls	= array();
$img_urls[]	= 'http://img1.hecart.com';	//图片主机域名1
$img_urls[]	= 'http://img2.hecart.com';	//图片主机域名2
$img_urls[]	= 'http://img3.hecart.com';	//图片主机域名3
define('IMG_URLS', json_encode($img_urls));
unset($img_urls);

/**
 * SMTP服务器
 */
$smtp_server		= array();
$smtp_server['host']= 'mail.hecart.com';	//SMTP服务器主机
$smtp_server['port']= 25;					//SMTP服务器端口
$smtp_server['user']= 'getpwd@hecart.com';	//SMTP登录用户账号
$smtp_server['upwd']= 'pwd!(*#489';			//SMTP登录用户密码
$smtp_server['cset']= 'utf-8';				//SMTP邮件内容编码
define('SMTP_SERVER', json_encode($smtp_server));
unset($smtp_server);
?>

                               

btpanel phpsite 宝塔面板PHP网站
btpanel phpsite 宝塔面板PHP网站

宝塔面板 PHP 网站管理:站点创建、删除、启停、PHP 版本切换、域名管理、SSL证书管理、伪静态管理、数据库管理

下载

                   

相关文章

数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

相关专题

更多
Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

80

2026.09.23

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

40

2026.09.23

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

20

2026.09.23

Conan创建软件包配方指南
Conan创建软件包配方指南

本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。

20

2026.09.22

Conan二进制包配置指南
Conan二进制包配置指南

本专题介绍Conan根据操作系统、编译器、架构和构建类型生成二进制包的方法,讲解Profile、Settings、Options及Package ID的作用,帮助管理不同平台和编译环境下的包版本。

40

2026.09.22

Conan私有仓库搭建教程
Conan私有仓库搭建教程

本专题系统的讲解Conan私有仓库的搭建流程,涵盖仓库服务部署、存储目录配置、用户认证、权限划分和远程地址添加,并介绍内部C++依赖包的上传、下载及版本维护方法。

40

2026.09.22

loomy官网入口地址合集
loomy官网入口地址合集

本专题汇总了 Loomy 桌面 AI 助理的官方入口地址合集及使用指南。提供 macOS 与 Windows 客户端下载 。Loomy 是讯飞推出的桌面级 AI 工作搭子,支持文件整理、数据分析、网页操作及通过飞书/钉钉远程操控电脑,助你高效完成本地办公任务 。

40

2026.09.22

NumPy常见函数使用方法
NumPy常见函数使用方法

本专题整理 NumPy 常见函数使用方法相关教程,覆盖函数大全、参数用法、数组运算、统计聚合、排序处理、where 条件筛选、linspace 创建数列等常用场景,帮助读者快速掌握 NumPy 函数调用思路和实际数据处理技巧。

60

2026.09.22

NumPy性能优化版本更新与常见报错排查
NumPy性能优化版本更新与常见报错排查

本专题整理 NumPy 性能优化、版本更新与常见报错排查相关教程,覆盖向量化计算、广播性能、内存布局、NumPy 2.0 升级、版本兼容冲突、安装导入报错、dtype 溢出、矩阵运算异常和 broadcasting 报错修复,帮助读者系统掌握 NumPy 性能调优与问题定位方法。

80

2026.09.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
墨刀帮助中心
墨刀帮助中心

共0课时 | 0人学习

MyEclipse学习中心
MyEclipse学习中心

共0课时 | 0人学习

Apache Subversion 官方手册
Apache Subversion 官方手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn