+ +
+

Config Class

+

The Config class provides a means to retrieve configuration preferences. +These preferences can come from the default config file +(application/config/config.php) or from your own custom config files.

+
+

Note

+

This class is initialized automatically by the system so there +is no need to do it manually.

+
+ +
+

Working with the Config Class

+
+

Anatomy of a Config File

+

By default, CodeIgniter has one primary config file, located at +application/config/config.php. If you open the file using your text +editor you’ll see that config items are stored in an array called +$config.

+

You can add your own config items to this file, or if you prefer to keep +your configuration items separate (assuming you even need config items), +simply create your own file and save it in config folder.

+
+

Note

+

If you do create your own config files use the same format as +the primary one, storing your items in an array called $config. +CodeIgniter will intelligently manage these files so there will be no +conflict even though the array has the same name (assuming an array +index is not named the same as another).

+
+
+
+

Loading a Config File

+
+

Note

+

CodeIgniter automatically loads the primary config file +(application/config/config.php), so you will only need to load a config +file if you have created your own.

+
+

There are two ways to load a config file:

+
+

Manual Loading

+

To load one of your custom config files you will use the following +function within the controller that +needs it:

+
$this->config->load('filename');
+
+
+

Where filename is the name of your config file, without the .php file +extension.

+

If you need to load multiple config files normally they will be +merged into one master config array. Name collisions can occur, +however, if you have identically named array indexes in different +config files. To avoid collisions you can set the second parameter to +TRUE and each config file will be stored in an array index +corresponding to the name of the config file. Example:

+
// Stored in an array with this prototype: $this->config['blog_settings'] = $config
+$this->config->load('blog_settings', TRUE);
+
+
+

Please see the section entitled Fetching Config Items below to learn +how to retrieve config items set this way.

+

The third parameter allows you to suppress errors in the event that a +config file does not exist:

+
$this->config->load('blog_settings', FALSE, TRUE);
+
+
+
+
+

Auto-loading

+

If you find that you need a particular config file globally, you can +have it loaded automatically by the system. To do this, open the +autoload.php file, located at application/config/autoload.php, +and add your config file as indicated in the file.

+
+
+
+

Fetching Config Items

+

To retrieve an item from your config file, use the following function:

+
$this->config->item('item_name');
+
+
+

Where item_name is the $config array index you want to retrieve. For +example, to fetch your language choice you’ll do this:

+
$lang = $this->config->item('language');
+
+
+

The function returns NULL if the item you are trying to fetch +does not exist.

+

If you are using the second parameter of the $this->config->load +function in order to assign your config items to a specific index you +can retrieve it by specifying the index name in the second parameter of +the $this->config->item() function. Example:

+
// Loads a config file named blog_settings.php and assigns it to an index named "blog_settings"
+$this->config->load('blog_settings', TRUE);
+
+// Retrieve a config item named site_name contained within the blog_settings array
+$site_name = $this->config->item('site_name', 'blog_settings');
+
+// An alternate way to specify the same item:
+$blog_config = $this->config->item('blog_settings');
+$site_name = $blog_config['site_name'];
+
+
+
+
+

Setting a Config Item

+

If you would like to dynamically set a config item or change an existing +one, you can do so using:

+
$this->config->set_item('item_name', 'item_value');
+
+
+

Where item_name is the $config array index you want to change, and +item_value is its value.

+
+
+

Environments

+

You may load different configuration files depending on the current +environment. The ENVIRONMENT constant is defined in index.php, and is +described in detail in the Handling +Environments section.

+

To create an environment-specific configuration file, create or copy a +configuration file in application/config/{ENVIRONMENT}/{FILENAME}.php

+

For example, to create a production-only config.php, you would:

+
    +
  1. Create the directory application/config/production/
  2. +
  3. Copy your existing config.php into the above directory
  4. +
  5. Edit application/config/production/config.php so it contains your +production settings
  6. +
+

When you set the ENVIRONMENT constant to ‘production’, the settings for +your new production-only config.php will be loaded.

+

You can place the following configuration files in environment-specific +folders:

+
    +
  • Default CodeIgniter configuration files
  • +
  • Your own custom configuration files
  • +
+
+

Note

+

CodeIgniter always loads the global config file first (i.e., the one in application/config/), +then tries to load the configuration files for the current environment. +This means you are not obligated to place all of your configuration files in an +environment folder. Only the files that change per environment. Additionally you don’t +have to copy all the config items in the environment config file. Only the config items +that you wish to change for your environment. The config items declared in your environment +folders always overwrite those in your global config files.

+
+
+
+
+

Class Reference

+
+
+class CI_Config
+
+
+$config
+

Array of all loaded config values

+
+ +
+
+$is_loaded
+

Array of all loaded config files

+
+ +
+
+item($item[, $index=''])
+
+++ + + + + + + + +
Parameters:
    +
  • $item (string) – Config item name
  • +
  • $index (string) – Index name
  • +
+
Returns:

Config item value or NULL if not found

+
Return type:

mixed

+
+

Fetch a config file item.

+
+ +
+
+set_item($item, $value)
+
+++ + + + + + +
Parameters:
    +
  • $item (string) – Config item name
  • +
  • $value (string) – Config item value
  • +
+
Return type:

void

+
+

Sets a config file item to the specified value.

+
+ +
+
+slash_item($item)
+
+++ + + + + + + + +
Parameters:
    +
  • $item (string) – config item name
  • +
+
Returns:

Config item value with a trailing forward slash or NULL if not found

+
Return type:

mixed

+
+

This method is identical to item(), except it appends a forward +slash to the end of the item, if it exists.

+
+ +
+
+load([$file = ''[, $use_sections = FALSE[, $fail_gracefully = FALSE]]])
+
+++ + + + + + + + +
Parameters:
    +
  • $file (string) – Configuration file name
  • +
  • $use_sections (bool) – Whether config values should be loaded into their own section (index of the main config array)
  • +
  • $fail_gracefully (bool) – Whether to return FALSE or to display an error message
  • +
+
Returns:

TRUE on success, FALSE on failure

+
Return type:

bool

+
+

Loads a configuration file.

+
+ +
+
+site_url()
+
+++ + + + + + +
Returns:Site URL
Return type:string
+

This method retrieves the URL to your site, along with the “index” value +you’ve specified in the config file.

+

This method is normally accessed via the corresponding functions in the +URL Helper.

+
+ +
+
+base_url()
+
+++ + + + + + +
Returns:Base URL
Return type:string
+

This method retrieves the URL to your site, plus an optional path such +as to a stylesheet or image.

+

This method is normally accessed via the corresponding functions in the +URL Helper.

+
+ +
+
+system_url()
+
+++ + + + + + +
Returns:URL pointing at your CI system/ directory
Return type:string
+

This method retrieves the URL to your CodeIgniter system/ directory.

+
+

Note

+

This method is DEPRECATED because it encourages usage of +insecure coding practices. Your system/ directory shouldn’t +be publicly accessible.

+
+
+ +
+ +
+
+ + +