在配置文件中使用模型常量(CodeIgniter)

Ven*_*tus 2 php codeigniter codeigniter-2

我是CodeIgniter的新手.我正在将它用于我的个人项目.

我想遵循的一件事就是坚持最好的编码实践.其中一个是DRY规则(不要重复自己).我尝试在适当的模型类中定义一些常量,并在代码中的其他地方使用它们,所以当涉及到一点变化时,它必须只在一个地方完成.

我有这个类Hero_attributes,它有几个常量,例如:


class Hero_attributes
{
    const ID = 'id';
    const NAME = 'name';
    const LEVEL = 'level';
    const MAG_LEVEL = 'maglevel';
    const VOCATION = 'vocation';
    const GENDER = 'sex';
    const SPEED = 'speed'
    (...)
}
Run Code Online (Sandbox Code Playgroud)

我还制作了一个tenkai_config.php自动加载的自定义配置文件.在配置数组中,我想使用Hero_attributes类中的常量作为键,即:


$config['vocations']['default'] = array(
    'hero' => array(
        Hero_attributes::LAST_LOGIN => 0,
        Hero_attributes::LEVEL => 1,
        Hero_attributes::MAG_LEVEL => 80,
        Hero_attributes::RESIDENCE => 1,
        Hero_attributes::POSITION_X => 73,
        Hero_attributes::POSITION_Y => 181,
        Hero_attributes::POSITION_Z => 6,
        (...)
    )
);
Run Code Online (Sandbox Code Playgroud)

但是,我收到Fatal error: Class 'Hero_attributes' not found in C:\wamp_new\www\yourwodb\application\config\tenkai_config.php on line 29消息.

如何在配置文件中使用常量?

Cod*_*ank 5

如果您只需要定义常量.您可以在./application/config/constants.php整个应用程序中可用的文件中定义它们

  • 是的,我可以这样做,但在我看来,这与最佳编码实践不一致.我希望每一段代码都属于正确的位置(类,配置等).我真的不想使用一个具有所有混合常量的全局位置. (2认同)