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 输入包 ...
随机推荐
- hdu2191 悼念512汶川大地震 ——多重背包
link:http://acm.hdu.edu.cn/showproblem.php?pid=2191 最简单的那种 #include <iostream> #include <cs ...
- C++中的迭代器
C++STL中的迭代器 "指针"对所有C/C++的程序员来说,一点都不陌生.在接触到C语言中的malloc函数和C++中的new函数后,我们也知道这两个函数返回的都是一个指针,该指 ...
- ASP.NET Razor——Razor 简介
ASP.NET Razor - 标记 Razor 不是一种编程语言.它是服务器端的标记语言. 什么是 Razor? Razor 是一种标记语法,可以让您将基于服务器的代码(Visual Basic 和 ...
- WorldChat.lua --世界聊天
print(">>Script: Wolrd Chating.") local SAY=" "--普通聊天 --联盟阵营 --部落阵营 local ...
- locate无法open mlocate.db
# locate xxxx locate: can not open () `/var/lib/mlocate/mlocate.db': No such file or directory 如果出现此 ...
- Python for loop and while loop
#!pyton2 #-*- coding:utf-8 -*- for letter in "Python": print "Current letter is:" ...
- 如何在目录中查找具有指定字符串的文件(shell)
find /tmp/ -name test.txt | xargs grep "hello" 可以查找到tmp目录下文件名test.txt并包含字符串hello的文件.
- Array补充方法
Array.prototype.Contain = function (item) { var arr = this; if (arr == null || arr.length == 0) { re ...
- ServletContext总结
今天我们学习的是ServletContext的应用. WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用. ServletConfig对 ...
- [git]git 分支
什么动作,关键看你想完成什么 1. 添加新的远程分支: git push origin current_local_branch:new_remote_branch 2. 删除远程分支(冒号前必须要有 ...