Package Home

Zend Framework 2 Documentation (Manual)

PHK Home

File: /_sources/modules/zend.config.introduction.txt

Size:3031
Storage flags:no_autoload,compress/gzip (33%)

.. _zend.config.introduction:

Introduction to Zend\\Config
============================

``Zend\Config`` is designed to simplify access to configuration data within applications. It
provides a nested object property-based user interface for accessing this configuration data within application
code. The configuration data may come from a variety of media supporting hierarchical data storage. Currently,
``Zend\Config`` provides adapters that read and write configuration data stored in .ini, JSON, YAML and XML files.

.. _zend.config.introduction.example.using:

Using Zend\\Config\\Config with a Reader Class
----------------------------------------------

Normally, it is expected that users would use one of the :ref:`reader classes <zend.config.reader.introduction>` to read a
configuration file, but if configuration data are available in a *PHP* array, one may simply pass the data
to ``Zend\Config\Config``'s constructor in order to utilize a simple object-oriented interface:

.. code-block:: php
   :linenos:

   // An array of configuration data is given
   $configArray = array(
       'webhost'  => 'www.example.com',
       'database' => array(
           'adapter' => 'pdo_mysql',
           'params'  => array(
               'host'     => 'db.example.com',
               'username' => 'dbuser',
               'password' => 'secret',
               'dbname'   => 'mydatabase'
           )
       )
   );

   // Create the object-oriented wrapper using the configuration data
   $config = new Zend\Config\Config($configArray);

   // Print a configuration datum (results in 'www.example.com')
   echo $config->webhost;


As illustrated in the example above, ``Zend\Config\Config`` provides nested object property syntax to access
configuration data passed to its constructor.

Along with the object-oriented access to the data values, ``Zend\Config\Config`` also has ``get()`` method that
returns the supplied value if the data element doesn't exist in the configuration array. For example:

.. code-block:: php
   :linenos:

   $host = $config->database->get('host', 'localhost');

.. _zend.config.introduction.example.file.php:

Using Zend\\Config\\Config with a PHP Configuration File
--------------------------------------------------------

It is often desirable to use a purely *PHP*-based configuration file. The following code illustrates how easily this
can be accomplished:

.. code-block:: php
   :linenos:

   // config.php
   return array(
       'webhost'  => 'www.example.com',
       'database' => array(
           'adapter' => 'pdo_mysql',
           'params'  => array(
               'host'     => 'db.example.com',
               'username' => 'dbuser',
               'password' => 'secret',
               'dbname'   => 'mydatabase'
           )
       )
   );

.. code-block:: php
   :linenos:

   // Consumes the configuration array
   $config = new Zend\Config\Config(include 'config.php');

   // Print a configuration datum (results in 'www.example.com')
   echo $config->webhost;



For more information about the PHK package format: http://phk.tekwire.net