在Prestashop

时间:2017-01-18 14:49:11

标签: variables prestashop constants prestashop-1.6

文件define.inc.php包含多个全局变量,但是如果我想定义新变量哪个文件最好?

如果我更新了Prestashop,那么文件define.inc.php会被重置,我会丢失我的全局变量。

也许在settings.inc.php中,但这个文件没有版本化。

2 个答案:

答案 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版本;)