Config/Ini.php
LICENSE
This source file is subject to the new BSD license that is bundled with this package in the file LICENSE.txt. It is also available through the world-wide-web at this URL: http://framework.zend.com/license/new-bsd If you did not receive a copy of the license and are unable to obtain it through the world-wide-web, please send an email to license@zend.com so we can send you a copy immediately.
- Category
- Zend
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
- Package
- Zend_Config
- Version
- $Id: Ini.php 24593 2012-01-05 20:35:02Z matthew $
\Zend_Config_Ini
- Parent(s)
- \Zend_Config
- Category
- Zend
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
Properties

boolean $_allowModifications- Type
- boolean
- Inherited_from
- \Zend_Config::$$_allowModifications

array $_extends = array()The keys are names of sections that extend other sections, and the values are the extended sections.
array()Details- Type
- array
- Inherited_from
- \Zend_Config::$$_extends

string $_loadFileErrorStr = nullIs null if there was no error while file loading
nullDetails- Type
- string
- Inherited_from
- \Zend_Config::$$_loadFileErrorStr

mixed $_loadedSectionThis is null if all sections were loaded, a string name if one section is loaded and an array of string names if multiple sections were loaded.
- Type
- mixed
- Inherited_from
- \Zend_Config::$$_loadedSection

string $_nestSeparator = '.''.'Details- Type
- string

string $_sectionSeparator = ':'':'Details- Type
- string

boolean $_skipNextIteration- Type
- boolean
- Inherited_from
- \Zend_Config::$$_skipNextIteration
Methods

__clone() : voidDeep clone of this instance to ensure that nested Zend_Configs are also cloned.
Inherited from: \Zend_Config::__clone()
__construct(string $filename, mixed $section = null, boolean | array $options = false) : voidLoads the section $section from the config file $filename for access facilitated by nested object properties.
If the section name contains a ":" then the section name to the right is loaded and included into the properties. Note that the keys in this $section will override any keys of the same name in the sections that have been included via ":".
If the $section is null, then all sections in the ini file are loaded.
If any key includes a ".", then this will act as a separator to create a sub-property.
example ini file: [all] db.connection = database hostname = live
[staging : all]
hostname = staging
after calling $data = new Zend_Config_Ini($file, 'staging'); then $data->hostname === "staging" $data->db->connection === "database"
The $options parameter may be provided as either a boolean or an array. If provided as a boolean, this sets the $allowModifications option of Zend_Config. If provided as an array, there are three configuration directives that may be set. For example:
$options = array( 'allowModifications' => false, 'nestSeparator' => ':', 'skipExtends' => false, );
| Name | Type | Description |
|---|---|---|
| $filename | string | |
| $section | mixed | |
| $options | boolean | array |
| Exception | Description |
|---|---|
| \Zend_Config_Exception |

__isset(string $name) : boolean| Name | Type | Description |
|---|---|---|
| $name | string |
| Type | Description |
|---|---|
| boolean |

__set(string $name, mixed $value) : voidOnly allow setting of a property if $allowModifications was set to true on construction.
Inherited from: \Zend_Config::__set()Otherwise, throw an exception.
| Name | Type | Description |
|---|---|---|
| $name | string | |
| $value | mixed |
| Exception | Description |
|---|---|
| \Zend_Config_Exception |

__unset(string $name) : void| Name | Type | Description |
|---|---|---|
| $name | string |
| Exception | Description |
|---|---|
| \Zend_Config_Exception |

_arrayMergeRecursive(mixed $firstArray, mixed $secondArray) : arrayMerge two arrays recursively, overwriting keys of the same name in $firstArray with the value in $secondArray.
Inherited from: \Zend_Config::_arrayMergeRecursive()| Name | Type | Description |
|---|---|---|
| $firstArray | mixed | First array |
| $secondArray | mixed | Second array to merge into first array |
| Type | Description |
|---|---|
| array |

_assertValidExtend(string $extendingSection, string $extendedSection) : voidThrows an exception if $extendingSection may not extend $extendedSection, and tracks the section extension if it is valid.
Inherited from: \Zend_Config::_assertValidExtend()| Name | Type | Description |
|---|---|---|
| $extendingSection | string | |
| $extendedSection | string |
| Exception | Description |
|---|---|
| \Zend_Config_Exception |

_loadFileErrorHandler(integer $errno, string $errstr, string $errfile, integer $errline) : voidHandle any errors from simplexml_load_file or parse_ini_file
Inherited from: \Zend_Config::_loadFileErrorHandler()| Name | Type | Description |
|---|---|---|
| $errno | integer | |
| $errstr | string | |
| $errfile | string | |
| $errline | integer |

_loadIniFile(string $filename) : arrayLoad the ini file and preprocess the section separator (':' in the section name (that is used for section extension) so that the resultant array has the correct section names and the extension information is stored in a sub-key called ';extends'.
We use ';extends' as this can never be a valid key name in an INI file that has been loaded using parse_ini_file().
| Name | Type | Description |
|---|---|---|
| $filename | string |
| Type | Description |
|---|---|
| array |
| Exception | Description |
|---|---|
| \Zend_Config_Exception |

_parseIniFile(string $filename) : arrayLoad the INI file from disk using parse_ini_file().
Use a private error handler to convert any loading errors into a Zend_Config_Exception
| Name | Type | Description |
|---|---|---|
| $filename | string |
| Type | Description |
|---|---|
| array |
| Exception | Description |
|---|---|
| \Zend_Config_Exception |

_processKey(array $config, string $key, string $value) : arrayAssign the key's value to the property list.
Handles the nest separator for sub-properties.
| Name | Type | Description |
|---|---|---|
| $config | array | |
| $key | string | |
| $value | string |
| Type | Description |
|---|---|
| array |
| Exception | Description |
|---|---|
| \Zend_Config_Exception |

_processSection(array $iniArray, string $section, array $config = array()) : arrayProcess each element in the section and handle the ";extends" inheritance key.
Passes control to _processKey() to handle the nest separator sub-property syntax that may be used within the key name.
| Name | Type | Description |
|---|---|---|
| $iniArray | array | |
| $section | string | |
| $config | array |
| Type | Description |
|---|---|
| array |
| Exception | Description |
|---|---|
| \Zend_Config_Exception |

areAllSectionsLoaded() : booleanReturns true if all sections were loaded
Inherited from: \Zend_Config::areAllSectionsLoaded()| Type | Description |
|---|---|
| boolean |

get(string $name, mixed $default = null) : mixedRetrieve a value and return $default if there is no element set.
Inherited from: \Zend_Config::get()| Name | Type | Description |
|---|---|---|
| $name | string | |
| $default | mixed |
| Type | Description |
|---|---|
| mixed |

merge(\Zend_Config $merge) : \Zend_ConfigThe items in $merge will override the same named items in the current config.
| Name | Type | Description |
|---|---|---|
| $merge | \Zend_Config |
| Type | Description |
|---|---|
| \Zend_Config |

readOnly() : booleanReturns if this Zend_Config object is read only or not.
Inherited from: \Zend_Config::readOnly()| Type | Description |
|---|---|
| boolean |

setExtend(string $extendingSection, string $extendedSection = null) : void| Name | Type | Description |
|---|---|---|
| $extendingSection | string | |
| $extendedSection | string |

setReadOnly() : voidPrevent any more modifications being made to this instance.
Inherited from: \Zend_Config::setReadOnly()Useful after merge() has been used to merge multiple Zend_Config objects into one object which should then not be modified again.