Zend_Config_Ini
Zend_Config_Ini enables developers to store configuration data in a
familiar INI format and read them in the application by using nested object property syntax.
The INI format is specialized to provide both the ability to have a hierarchy of
configuration data keys and inheritance between configuration data sections. Configuration
data hierarchies are supported by separating the keys with the dot or period character
("."). A section may extend or inherit from another section by
following the section name with a colon character (":) and the name of
the section from which data are to be inherited.
Parsing the INI File
Zend_Config_Ini utilizes the parse_ini_file()
PHP function. Please review this documentation to be aware of its specific behaviors,
which propagate to Zend_Config_Ini, such as how the special
values of "TRUE", "FALSE", "yes", "no",
and "NULL" are handled.
Key Separator
By default, the key separator character is the period character
("."). This can be changed, however, by changing the
$options key 'nestSeparator' when constructing
the Zend_Config_Ini object. For example:
Using Zend_Config_Ini
This example illustrates a basic use of Zend_Config_Ini for
loading configuration data from an INI file. In this example there are configuration
data for both a production system and for a staging system. Because the staging system
configuration data are very similar to those for production, the staging section
inherits from the production section. In this case, the decision is arbitrary and could
have been written conversely, with the production section inheriting from the staging
section, though this may not be the case for more complex situations. Suppose, then,
that the following configuration data are contained in
/path/to/config.ini:
Next, assume that the application developer needs the staging configuration data from
the INI file. It is a simple matter to load these data by specifying the INI file and
the staging section:
database->params->host; // prints "dev.example.com"
echo $config->database->params->dbname; // prints "dbname"
]]>
Zend_Config_Ini Constructor Parameters
Parameter
Notes
$filename
The INI file to load.
$section
The [section] within the ini file that is to be loaded. Setting
this parameter to null will load all sections. Alternatively, an
array of section names may be supplied to load multiple sections.
$options = false
Options array. The following keys are supported:
allowModifications: Set to true to allow
subsequent modification of loaded file. Defaults to false
nestSeparator: Set to the character to be
used as the nest separator. Defaults to "."