在 Prestashop 中定义新全局变量的位置
Where define new global variable in Prestashop
文件 defines.inc.php 包含多个全局变量,但如果我想定义新变量,哪个文件最好?
如果我更新 Prestashop,文件 defines.inc.php 会重置,我会丢失我的全局变量。
可能在 settings.inc.php 中,但此文件没有版本控制。
我建议创建您自己的模块(可能是 'dummy' 模块 :)),并在那里声明您的全局变量。
例如创建一个名为 '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 版本而不会丢失您的全局变量 ;)
您可以在 config/defines.inc.php
旁边创建一个文件 config/defines_custom.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');
例如,您可以通过这种方式在不触及默认文件的情况下将模式 dev 设置为:
define('_PS_MODE_DEV_', true);
并且在默认文件中,不会出现这个定义:
if (!defined('_PS_MODE_DEV_')) {
define('_PS_MODE_DEV_', false);
}
文件 defines.inc.php 包含多个全局变量,但如果我想定义新变量,哪个文件最好?
如果我更新 Prestashop,文件 defines.inc.php 会重置,我会丢失我的全局变量。
可能在 settings.inc.php 中,但此文件没有版本控制。
我建议创建您自己的模块(可能是 'dummy' 模块 :)),并在那里声明您的全局变量。
例如创建一个名为 '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 版本而不会丢失您的全局变量 ;)
您可以在 config/defines.inc.php
旁边创建一个文件 config/defines_custom.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');
例如,您可以通过这种方式在不触及默认文件的情况下将模式 dev 设置为:
define('_PS_MODE_DEV_', true);
并且在默认文件中,不会出现这个定义:
if (!defined('_PS_MODE_DEV_')) {
define('_PS_MODE_DEV_', false);
}