Reputation: 976
I want to know a clean way of defining Application Constants in Codeigniter. I don't want to change any native file of codeigniter. Hence I don't want to define it in application/config/constants.php
as when I need to migrate to newer version of code-igniter I will not be able to copy the native files of codeigniter directly.
I created a file application/config/my_constants.php
and defined my constants there. 'define('APP_VERSION', '1.0.0');'
I loaded it using $this->load->config('my_constants');
But I am getting a error
Your application/config/dv_constants.php file does not appear to contain a valid configuration array.
Please suggest me a clean way of defining application level constants in code-igniter.
Upvotes: 12
Views: 42199
Reputation: 167
Let me suggest that you use composer.json to autoload your own Constants.php file, like this:
Upvotes: 0
Reputation: 489
You can accomplish your goal by adding constants to your own config file, such as my_config.php
.
You would save this file in the application/config
folder, like this:
application/config/my_config.php
.
It is very common to have a separate config file for each application you write, so this would be easy to maintain and be understood by other CI programmers.
You can instruct CI to autoload this file or you can load it manually, as needed. See the CI manual on "Config class".
Upvotes: 0
Reputation: 5209
just a complete answer. (None of the answers show how to use the constants that were declared)
The process is simple:
Defining a constant. Open config/constants.php
and add the following line:
define('SITE_CREATOR', 'John Doe')
use this constant in another file using:
$myVar = 'This site was created by '.SITE_CREATOR.' Check out my GitHub Profile'
Upvotes: 4
Reputation: 1156
Please refer this:
http://ellislab.com/forums/viewthread/56981/
Define variable in to constants & add value on array
$ORDER_STATUS = array('0'=>'In Progress','1'=>'On Hold','2'
=>'Awaiting Review','3'=>'Completed','4'
=>'Refund Requested','5'=>'Refunded');
Upvotes: 0
Reputation: 2396
config file (system/application/config/config.php) to set configuration related variables.
Or use
constant file (system/application/config/constants.php) to store site preference constants.
=======================
DEFINE WHAT YOU WANT
=======================
$config['index_page'] = 'home';
$config['BASEPATH'] = 'PATH TO YOUR HOST';
Upvotes: 1
Reputation: 3408
Instead of using define()
, your my_constants.php file should look something like this:
$config['app_version'] = '1.0.0';
Be careful with naming the array key though, you don't want to conflict with anything.
If you need to use define()
, I would suggest doing it in the main index.php file, though you will still need to use APP_VERSION
to get the value.
Upvotes: 3
Reputation: 43298
Not using application/config/constants.php
is nonsense! That is the only place you should be putting your constants. Don't change the files in system
if you are worried about upgrading.
Upvotes: 39