phpcodeignitercodeigniter-2

Using model constants in config file (CodeIgniter)


One of the things I would like to follow is to stick to the best coding practices. One of them is DRY rule (Don't Repeat Yourself). I try to define some constants in proper model class and use them everywhere else in the code, so when it comes to a little change, it has to be done only in one place.

I have this class Hero_attributes, which has several constants, e.g.:


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'
    (...)
}

I have also made a custom config file tenkai_config.php which is autoloaded. In the config array I'd like to use constants from Hero_attributes class as keys, i.e.:


$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,
        (...)
    )
);

However, I get Fatal error: Class 'Hero_attributes' not found in C:\wamp_new\www\yourwodb\application\config\tenkai_config.php on line 29 message.

How can I use constants in config file?


Solution

  • If you only need to define constants. You can define them in ./application/config/constants.php file they are available throughout the application