ecshop的特点,持续加新
一、目录文件结构
入口文件index.php,define('IN_ECS', true); 只有为true时才可以进入。
首先加入init.php,在这个文件里:
- @ini_set('memory_limit', '64M'); 初始化一些系统参数
- 加载数据库等相关配置require(ROOT_PATH . 'data/config.php'); 这里还包括了:后台路径ADMIN_PATH,字符编码EC_CHARSET等
- 由于我们现在的php版本普遍大于5.5 ,所以会用一些新函数(新函数不仅用于这个文件,新函数的作用是使编程更加简单),如data_default_timezone_set();
- 定义了当前文件位置常量PHP_SELF,注意,init.php是index.php通过require文件包含进来的,所以它的相对文件位置也是和index.php文件位置一致
- 加载文件:
- inc_constant.php这个文件分类写好了关于各个模块(如图片处理,商品属性类等)的相关常量
- cls_ecshop.php获得数据库及表名功能和获得一些域名地址及md5加密密码功能的函数
- cls_error.php用户级错误处理类, lib_base.php 基础函数库, lib_common.php 有关数据库的通用函数
- require(ROOT_PATH . 'includes/lib_main.php'); #前台公用函数库
- lib_insert.php #调用动态动态内容的函数库
- lib_goods.php #商品相关函数库,
- lib_article.php #文章及文章分类相关函数库等功能文件
- 还有cls_mysql.php,cls_session.php,cls_smarty.php
总结: includes几乎包含了前台的所有功能,它里面的cls_代表的是类文件,lib_代表了函数库,inc_表示常量文件,理详细的lib_base表示了基础函数,lib_common包含了跟数据处理相关的基础函数,lib_main包含了前台公用函数库
- 同时,init.php还加载了语言包 require(ROOT_PATH . 'languages/' . $_CFG['lang'] . '/common.php'); (三种言:简体中,繁体中,英语)
- $GLOBALS['_CFG']这个系统变量是在llip_common.php的load_config()方法加载的,缓存于temp/static_caches/shop_config.php文件中,如需要更改,先更改数据库esc_shop_config,再删除文件,刷新首页,即可。
- 当在init.php中初始化cls_mysql.php的mysql类时,只是加载了连接数据库所需要的基本参数,并不连接,这样很好
- register_shutdown_function(array(&$this, 'close_session')); 会在程序离开的时候更新session,并随机删除表中过期的session
ecshop的特点,持续加新的更多相关文章
- [实战] 给现有的NGINX二进制RPM包加新模块
[实战] 给现有的NGINX二进制RPM包加新模块 一.前言 在做 wiki 的镜像,这样以后文章就可以使用外链了(链接直接跳转墙内小站). 遇到的问题就是:我的 NGINX 包安装的时候图方便采用 ...
- RHEL7虚拟机中不重启的情况下加新硬盘及扩展根分区容量
在VMware中添加一块新的5G硬盘 显示当前分区 # fdisk -l 通常在你在虚拟机中添加一块新硬盘时,你可能会看到新硬盘没有自动加载.这是因为连接到硬盘的SCSI总线需要重新扫描来使得新硬盘可 ...
- WINDOWS HYPER-V加新网卡,设置网络出错
新网卡加入,设置好IP之后,HYPER-V需要更改相应外部网络连接,然后重新生成新的虚拟连接网卡. 不然,虚拟机无法正常使用网络. 但我昨天在绑定新的网站时,出现如下错误: Adding a new ...
- linux系统,CentOs7加新硬盘
1,打开Vmware软件,添加一块新的硬盘,然后一直下一步. 2.通过CRT等终端软件,连接到机器 [root@Mysql ~]# lsblk //检查一下硬盘分区信息 [root@Mysql ...
- 海洋女神建新installshield交流群了,原来的老群都满了,请加新群哦,记得认真填写验证信息
群号511751143 海洋女神installshield群
- magento产品eav笔记【持续跟新...】
//magento把产品信息分在子表中,最顶上的表是catalog_product_entity,仅仅包含产品的信息(SKU) //表eav_attribute,这张表在magento里为全部不 同的 ...
- 关于百度地图API (持续跟新)
一.初始化地图显示不在正中间,出现偏移 问题描述与解决办法: 代码: body, html, #allmap { width: 100%; height: 100%; overflow: hidden ...
- 【持续跟新】剑指Offer_Java实现
[第一题 ]二维数组中的查找 package sword_finger_offer; import org.junit.jupiter.api.Test; /** * 剑指offer习题一 二维数组中 ...
- linux 查看安装软件位置(持续跟新)
1.rpm包形式(包括yum安装)可以rpm -aq|grep http #查看是否安装了apache的包rpm -qi 输入上一步获取的包名 #了解一下这个apache包的信息rpm -ql 输入包 ...
随机推荐
- Windows 下的 Sublime Text 2 配置汇总, Sublime Text 3 亦可借鉴
1)软件下载地址:http://www.sublimetext.com/2 2)安装 Package Control ,方便安装和管理插件,网络资源很多,这里附上一篇:http://www.imjef ...
- 旅行家的预算 1999年NOIP全国联赛普及组NOIP全国联赛提高组
时间限制: 1 s 空间限制: 128000 KB 题目描述 Description 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1.汽车 ...
- 函数指针的一个demo
#include <stdio.h> typedef void (*fun_cb)(int a, int b); static fun_cb exe_fun_cb; void fun_cb ...
- 怎样创建FTP服务器
怎样创建FTP服务器 2008-05-06 08:42永远的探索|分类:操作系统/系统故障| 浏览6382次 我准备用局域网内的一台机器做FTP服务器,创建FTP服务器一定要用Windows serv ...
- jedisPool.returnBrokenResource 弃用
for (int i = 0; i < 1000000 ; i++) { //使用Pool的方式 调用Redis JedisPool jedisPool = SpringContextHolde ...
- Mac OS X使用快捷键改善窗口管理的六个方法
http://www.macx.cn/thread-2085916-1-1.html 窗口全屏 ctrl+command+f
- Spring4.1.6 标签注解大全以及解释
常用的spring注解有如下几种: @Controller@Service@Autowired@RequestMapping@RequestParam@ModelAttribute@Cacheable ...
- SQL Server 2012 创建操作员
数据库可以通知操作员,给操作员发送邮件,就要在SQL Server 的代理中启用数据库邮件,前提是先配置出数据库邮件 右键SQL Server代理,选择属性,按下图设置 保存后,右键操作员,选择新建操 ...
- 黄聪:PHP7.0中htmlspecialchars出错解决方案(wordpress)
htmlspecialchars( $context, ENT_COMPAT, 'UTF-8' )
- Android 触摸手势基础 官方文档概览2
Android 触摸手势基础 官方文档概览 触摸手势检测基础 手势检测一般包含两个阶段: 1.获取touch事件数据 2.解析这些数据,看它们是否满足你的应用所支持的某种手势. 相关API: Moti ...