3.2. Zend_Config_Array

3.2.1. مقدمة

توفرZend_Config_Array للمطور امكانية قرائة بيانات configuration محفوظة فى associative array متعددة الأبعاد , و من ثم استخدام هذه البيانات من خلال Zend_Config.

مثال 3.2. بيانات الـ configuration المحفوظة فى array

المثال التالى يوضح استخدام بسيط لـ Zend_Config_Array حيث سنقوم بتحميل بيانات configuration من array "مصفوفة" . قبل هذا نحتاج إلى إنشاء الـ array التى تحوى البيانات التى سيتم قرائتها :

<?php
// Production site configuration data
$config['production'] = array(
    'webhost' => 'www.example.com',
    'database' => array(
        'type'     => 'pdo_mysql',
        'host'     => 'db.example.com',
        'username' => 'dbuser',
        'password' => 'secret',
        'name'     => 'dbname'
    )
);

// Staging site configuration data inherits from production and
// overrides values as necessary
$config['staging'] = $config['production'];
$config['staging']['webhost'] = 'dev.example.com';
$config['staging']['database']['host'] = 'dev.example.com';
$config['staging']['database']['username'] = 'devuser';
$config['staging']['database']['password'] = 'devsecret';
?>       
[ملاحظة] ملاحظة
الـ array التى تحتوى على بيانات الـ configuration يجب ان تسمى config$ فى ملف الـ php الذى سيتم تحميلها منه.

فى المثال بالأعلى, تم وضع مثال لما اسميناه بالوراثة حيث ان القسم production تم حفظ قيمته فى القسم staging, الأن اصبح الأمر سهلاً حيث سنقوم بتحميل البيانات عن طريق Zend_Config_Array :

<?php
require_once 'Zend/Config.php';
require_once 'Zend/Config/Array.php';

$config = new Zend_Config(Zend_Config_Array::load('/path/to/config.php', 'staging'));

echo $config->database->host; // prints "dev.example.com"
?>       

ملحوظة تستحق الذكر, بيانات الـ configuration محفوظة مباشرة فى مصفوفة PHP, بالتالى كل قيمة بعد تحميلها ستحمل نفس نوع البيانات التى كانت عليه و هى فى config$

<?php
$config['staging']['debug']   = 'false'; // value has string type
$config['staging']['console'] = false; // value of boolean type
$config['staging']['timeout'] = 30; // value of integer type
?>