zencart学习

关于zen cart常量的介绍

zencart系统里面使用的常量有两种类型,一种是文件定义的常量,另一种是数据库里面定义的常量。
文件定义的常量是固定,而数据库里面定义的常量是可以动态改变的。这是他们的区别之一。
当我们在开发中遇到一些常量,如果不知道他具体什么意思,也不知道他具体在什么位置,那我们可以查询整个网站的文件,这个查询可以借助IDE来查询,个人建议使用phpeclipse,因为他不仅可以查询还有代码提示功能,这个功能很方便,它可以大大的加快我们开发的进度。

 说到这个常量的定义我们都很清楚了,特别是文件中定义的常量,我们只有define()一下就可以了。而数据库中定义的常量是可以动态改变他的值。呵呵呵…“动态的常量”,说起来有点矛盾。那么这个“动态常量”是怎么定义的呢?具体看看他所在文件includes\init_includes\init_db_config_read.php 中的定义吧,代码如下:
复制代码
$use_cache = (isset($_GET['nocache']) ? false : true ) ;
$configuration = $db->Execute(‘select configuration_key as cfgkey, configuration_value as cfgvalue from ‘ . TABLE_CONFIGURATION, ”, $use_cache, 150);
while (!$configuration->EOF) {
/**
* dynamic define based on info read from DB
*/
define(strtoupper($configuration->fields['cfgkey']), $configuration->fields['cfgvalue']);///定义数据库常量
$configuration->MoveNext();
}
$configuration = $db->Execute(‘select configuration_key as cfgkey, configuration_value as cfgvalue from ‘ . TABLE_PRODUCT_TYPE_LAYOUT);
while (!$configuration->EOF) {
/**
* dynamic define based on info read from DB
* @ignore
*/
define(strtoupper($configuration->fields['cfgkey']), $configuration->fields['cfgvalue']);//定义数据库常量
$configuration->movenext();
}
这个文件是在初始化的时候执行了,所以在系统里面可以直接使用数据库里面的常量来取得他的值。比如STORE_NAME。
如果以后开发中发现在文件中找不到某一个常量的话,可以去后台–工具–开发工具,里面使用常量查询功能,其实他就是查询
CONFIGURATION 和 PRODUCT_TYPE_LAYOUT 这两个表。


31