Config/Ini.php
Zend Framework
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 [email protected] 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 =
Whether in-memory modifications to configuration data are allowed
Inherited from: \Zend_Config::$$_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 = null
Is null if there was no error while file loading
null
Details- Type
- string
- Inherited_from
- \Zend_Config::$$_loadFileErrorStr


mixed $_loadedSection =
Contains which config file sections were loaded.
Inherited from: \Zend_Config::$$_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 = '.'
String that separates nesting levels of configuration data identifiers
'.'
Details- Type
- string


string $_sectionSeparator = ':'
String that separates the parent section name
':'
Details- Type
- string


boolean $_skipNextIteration =
Used when unsetting values during iteration to ensure we do not skip the next element
Inherited from: \Zend_Config::$$_skipNextIteration- Type
- boolean
- Inherited_from
- \Zend_Config::$$_skipNextIteration
Methods


__clone() : void
Deep 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) : void
Loads 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 |


__get(string $name) : mixed
Name | Type | Description |
---|---|---|
$name | string |
Type | Description |
---|---|
mixed |


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


__set(string $name, mixed $value) : void
Only 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) : array
Merge 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) : void
Throws 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) : void
Handle 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) : array
Load 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) : array
Load 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) : array
Assign 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()) : array
Process 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() : boolean
Returns true if all sections were loaded
Inherited from: \Zend_Config::areAllSectionsLoaded()Type | Description |
---|---|
boolean |


get(string $name, mixed $default = null) : mixed
Retrieve 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_Config
The items in $merge will override the same named items in the current config.
Name | Type | Description |
---|---|---|
$merge | \Zend_Config |
Type | Description |
---|---|
\Zend_Config |


readOnly() : boolean
Returns 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() : void
Prevent 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.