3.2. Zend_Config_Array
السابق | فصل 3. Zend_Config | التالي

## 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
    ?>

السابق | أعلى | التالي
فصل 3. Zend_Config | البداية | 3.3. Zend_Config_Ini