我在哪里为Codeigniter(PHP)放置常量文件?

wag*_*639 5 php codeigniter

我有一个常量列表(我将它们用作枚举),一些是定义语句,有些只是全局变量.

我想在哪里将它们放在MVC框架中,以便我可以将它们用于我的模型和需要引用它的控制器?

我宁愿不把它粘在config/constants.php中,因为除了这个模型和使用它的控制器之外不应该调用它们.

编辑1:澄清

更具体地说,我有我的message_model模型,它有一堆我需要存储的常量message_model_constants.php.我应该放在哪里message_model_constants.php,是否有一种方法让控制器自动包含它,message_modelmessage_model不是(我不希望它)自动加载时加载.

编辑2:

除了我使用模型时,我真的不想自动加载常量

小智 5

转到application/config/constants.php并定义你的常量,你可以在CI的模型 - 视图 - 控制器上使用你的常量,不包括"助手"和"库"

但在你的情况下,我更喜欢你创建一个包含常量的php文件,并将其重命名为my_constants_helper.php.

在你的模型或控制器__construct

$this->load->helper('my_constants');
Run Code Online (Sandbox Code Playgroud)

万岁,你可以访问他们=)


Jav*_*olz 2

扩展 Brennan Novak 的答案,您可以通过在模型构造函数中加载配置文件来简化代码。这样,您只需将模型加载到控制器中,其他一切都会自动完成。

模型

class Message_model extends Model {

    function __construct()
    {
        parent::Model();
        $this->load->config('message_model_constants');
    }
...
}
Run Code Online (Sandbox Code Playgroud)

控制器

class Some_controller extends Controller {

    function __construct()
    {
        parent::Controller();
        $this->load->model('message_model');
    }
...
}
Run Code Online (Sandbox Code Playgroud)

如前所述,您的配置文件应该是 application/config/message_model_constants.php