一、目录文件结构

  入口文件index.php,define('IN_ECS', true); 只有为true时才可以进入。

首先加入init.php,在这个文件里:

  1. @ini_set('memory_limit',          '64M');  初始化一些系统参数
  2. 加载数据库等相关配置require(ROOT_PATH . 'data/config.php'); 这里还包括了:后台路径ADMIN_PATH,字符编码EC_CHARSET等
  3. 由于我们现在的php版本普遍大于5.5 ,所以会用一些新函数(新函数不仅用于这个文件,新函数的作用是使编程更加简单),如data_default_timezone_set();
  4. 定义了当前文件位置常量PHP_SELF,注意,init.php是index.php通过require文件包含进来的,所以它的相对文件位置也是和index.php文件位置一致
  5. 加载文件:
    • 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包含了前台公用函数库

  1. 同时,init.php还加载了语言包 require(ROOT_PATH . 'languages/' . $_CFG['lang'] . '/common.php'); (三种言:简体中,繁体中,英语)
  2. $GLOBALS['_CFG']这个系统变量是在llip_common.php的load_config()方法加载的,缓存于temp/static_caches/shop_config.php文件中,如需要更改,先更改数据库esc_shop_config,再删除文件,刷新首页,即可。
  3. 当在init.php中初始化cls_mysql.php的mysql类时,只是加载了连接数据库所需要的基本参数,并不连接,这样很好
  4. register_shutdown_function(array(&$this, 'close_session'));  会在程序离开的时候更新session,并随机删除表中过期的session

ecshop的特点,持续加新的更多相关文章

  1. [实战] 给现有的NGINX二进制RPM包加新模块

    [实战] 给现有的NGINX二进制RPM包加新模块 一.前言 在做 wiki 的镜像,这样以后文章就可以使用外链了(链接直接跳转墙内小站). 遇到的问题就是:我的 NGINX 包安装的时候图方便采用 ...

  2. RHEL7虚拟机中不重启的情况下加新硬盘及扩展根分区容量

    在VMware中添加一块新的5G硬盘 显示当前分区 # fdisk -l 通常在你在虚拟机中添加一块新硬盘时,你可能会看到新硬盘没有自动加载.这是因为连接到硬盘的SCSI总线需要重新扫描来使得新硬盘可 ...

  3. WINDOWS HYPER-V加新网卡,设置网络出错

    新网卡加入,设置好IP之后,HYPER-V需要更改相应外部网络连接,然后重新生成新的虚拟连接网卡. 不然,虚拟机无法正常使用网络. 但我昨天在绑定新的网站时,出现如下错误: Adding a new ...

  4. linux系统,CentOs7加新硬盘

    1,打开Vmware软件,添加一块新的硬盘,然后一直下一步. 2.通过CRT等终端软件,连接到机器 [root@Mysql ~]# lsblk    //检查一下硬盘分区信息 [root@Mysql ...

  5. 海洋女神建新installshield交流群了,原来的老群都满了,请加新群哦,记得认真填写验证信息

    群号511751143 海洋女神installshield群

  6. magento产品eav笔记【持续跟新...】

    //magento把产品信息分在子表中,最顶上的表是catalog_product_entity,仅仅包含产品的信息(SKU) //表eav_attribute,这张表在magento里为全部不 同的 ...

  7. 关于百度地图API (持续跟新)

    一.初始化地图显示不在正中间,出现偏移 问题描述与解决办法: 代码: body, html, #allmap { width: 100%; height: 100%; overflow: hidden ...

  8. 【持续跟新】剑指Offer_Java实现

    [第一题 ]二维数组中的查找 package sword_finger_offer; import org.junit.jupiter.api.Test; /** * 剑指offer习题一 二维数组中 ...

  9. linux 查看安装软件位置(持续跟新)

    1.rpm包形式(包括yum安装)可以rpm -aq|grep http #查看是否安装了apache的包rpm -qi 输入上一步获取的包名 #了解一下这个apache包的信息rpm -ql 输入包 ...

随机推荐

  1. BlackJack Strategy

    GAME SPEC: 2-deck, 104 cards total. Bellagio has 2-deck and 6-deck games. based on hard 17, dealer h ...

  2. ucos3的配置文件

    1,配置文件,用于系统的裁剪 均有详细的注释 为组件的开关 ​ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ...

  3. IDEA 中 显示 *.properties 为中文

      效果:  

  4. npm以及gulp相关操作

    在工作流相关的第一篇博客中,我们安装了nodejs的环境,那么nodejs自带的npm是一个功能十分强大的管理器,它已经不仅仅是局限于nodejs的版本管理器了,那么当现在我们可以通过npm来下载我们 ...

  5. .NET异常问题总结

    输入字符串的格式不正确. 有格式化字符替换符号{0}等,“{”和“}”作为特殊符号出现,如果有多余的“{”和“}”就会出错 GZIP压缩出现FF-F0-F1…是无效的输入流 要解压的字节流无效,可能是 ...

  6. 在浏览器中输入Google.com并且按下回车之后发生了什么(转载)

    原文地址:https://github.com/skyline75489/what-happens-when-zh_CN#id9 本文试图回答一个古老的面试问题:当你在浏览器中输入google.com ...

  7. Android 另类方法监听软键盘的弹出收起事件

    http://www.cnblogs.com/csonezp/p/5065624.html 最近做的项目碰到个问题,a界面是fragment+recyclerview,b界面带个edittext,并且 ...

  8. [转载]iOS 归档操作 NSCoding

    最近一个项目需要保存到本地文件,想用plist,但是发现很多内容是自定义的,于是只能自己归档接档.不难,找了一篇范文大家保存一下,方便以后学习使用. 转自:http://mobile.51cto.co ...

  9. HTC Vive开发笔记之SteamVR插件集成

    重要组件 SteamVR_Camera VR摄像机,主要功能是将Unity摄像机的画面进行变化,形成Vive中的成像画面 使用方法: l 在任一个摄像机上增加脚本 l 点击Expand按钮 完成以上操 ...

  10. ubuntu16.04解决播放swf视频文件问题

    使用下面 sudo apt-get install swfdec-gnome