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 输入包 ...
随机推荐
- [Spring] - Property注入
使用Spring注入Properies文件方法: 1.src中新建一个settings.properties文件,内容如下: db_driverClassName=com.mysql.jdbc.Dri ...
- Sprint第二个冲刺(第十三天)
一.Sprint 计划会议: sprint2计划的功能还没有全部完成,还在实现剩余的两个功能模块,目前工作进展还比较顺利,争取下一个sprint完成剩余的所有目标. 以下是真机测试下的拍照和系统相册取 ...
- Spring总结
此君也是使用过多时了,却从来没有系统的总结过 以下,弥补,盼不晚: Spring为什么是框架&容器 1.框架的原因: 其提供多个组件的搭建,和支持其他事务事件,符合框架定义 ps:什么是框架呢 ...
- codeforces 340C Tourist Problem
link:http://codeforces.com/problemset/problem/340/C 开始一点也没思路,赛后看别人写的代码那么短,可是不知道怎么推出来的啊! 后来明白了. 首先考虑第 ...
- VPS折腾
kali 源: deb http://ppa.launchpad.net/wagungs/kali-linux2/ubuntu raring main deb-src http://ppa.laun ...
- post 与 get 在转码的区别
前端输入中文的时候,后端post通过 String text = getRequest().getParameter("text");可以正常拿到中文, 但是通过get的时候就会出 ...
- sqlserver2008 ,只能选C盘目录,不能选其它盘目录
数据库sql2008安装后,无论备份或还原,只能看到C盘,手工输入路径,错误提示如下:尝试打开或创建物理文件 'D:\数据库\db.mdf' 时,CREATE FILE 遇到操作系统错误 5(拒绝访问 ...
- 6、java中的构造代码块
/* 演示构造代码块的应用 */ class Person { String name; int age; //构造代码块 { cry(); } Person(String name, int age ...
- HackerRank "TBS Problem" ~ NPC
It is marked as a NPC problem. However from the #1 code submission (https://www.hackerrank.com/Charl ...
- [踏得网]HTML5在线教程阅读进度记录
2017年1月3日18:12:19http://techbrood.com/h5b2a?p=html-canvas-states 2017年1月3日17:10:11http://techbrood.c ...