1:cache_server缓存对象,在ecmall/includes/global.lib.php声明, 用于记录 数据库的缓存用到的。
2:conf 配置项类,直接以conf::get获取配置项的值,配置项的全局变量$GLOBALS['ECMALL_CONFIG'],全局变量值通过Conf::load载入配置文件。
来说说配置文件里面值这么载入进来的:
比如在ecapp.base.php文件有这样两行代码:
/* 载入配置项 */
$setting =& af('settings');
Conf::load($setting->getAll());
af是定义在global.lib.php里面,看这个函数里面的代码就应该知道,包括了两个文件
includes/arrayfile.base.php以及 includes/arrayfiles/' . $type . '.arrayfile.php ,这个$type在这里就是setting了,也就是arrayfiles/setting.arrayfile.php,这两个文件里面的类是父子关系。
子类的get_default函数 就是具体的 变量值。父类的getAll就是用来取这些变量的值。
最后通过conf::load把这些变量值放入全局变量中,也就是 $GLOBALS['ECMALL_CONFIG'] = $conf;这个。
3:upload同级的integrate文件只在链接UC才用到。
4:前端基类frontend.base.php和后端基类backend.base.php
5:eccore文件夹,ecmall的核心文件所在。包括controller,model,view以及一个核心文件ecmall.php。来说说显示视图的流程:
app.base.php下面的display函数 =>_init_view函数 $this->_view =& v(); 这行代码,$v是view文件下template.php模板类。跟踪到模板类的display函数,
$out = $this->fetch($filename, $cache_id);这行代码即是输出模板,看fetch函数里面filename变量这么获取的,在前端基类frontend.base.php$this->_view->template_dir = ROOT_PATH . "/themes/store/{$template_name}";里面。
代码写的有点玄乎,最挫的是提交的表单数据 都没有经过过滤