文件define.inc.php包含多个全局变量,但是如果我想定义新变量哪个文件最好?
如果我更新了Prestashop,那么文件define.inc.php会被重置,我会丢失我的全局变量。
也许在settings.inc.php中,但这个文件没有版本化。
答案 0 :(得分:2)
您可以在config/defines_custom.inc.php
旁边创建文件config/defines.inc.php
。启动时,Prestashop会检查此文件是否存在。如果它存在则将其包含在默认值之前。
您可以在config/config.inc.php
中找到相关代码:
$currentDir = dirname(__FILE__);
/* Custom defines made by users */
if (is_file($currentDir.'/defines_custom.inc.php')) {
include_once($currentDir.'/defines_custom.inc.php');
}
require_once($currentDir.'/defines.inc.php');
通过这种方式,您可以在不触及默认文件的情况下设置模式开启:
define('_PS_MODE_DEV_', true);
在默认文件中,不会发生此定义:
if (!defined('_PS_MODE_DEV_')) {
define('_PS_MODE_DEV_', false);
}
答案 1 :(得分:0)
我建议你创建自己的模块(可能是'虚拟'模块:)),并声明你的全局变量。
例如,创建一个名为“mymodule”的模块,主文件mymodule.php
应为:
// Here you can define your global vars
define('MY_CUSTOM_VAR', 100);
class MyModule extends MyModule
{
public function __construct()
{
// See documentation
}
public function install(){ return parent::install(); }
}
因此,您可以在不丢失全局变量的情况下更新PrestaShop版本;)