3.3. Zend_Config_Ini

3.3.1. مقدمة

توفر Zend_Config_Ini للمطور امكانية قرائة بيانات الـ configuration التى قام بحفظها فى ملف INI , و من ثم سيتمكن من قرائتها عن طريق الـ properties الخاصة بالـ object الذى سينشئه من Zend_Config.

مثال 3.3. بيانات الـ Configuration المحفوظة فى ملف INI

هذا المثال يوضح مثال بسيط فى استخدام Zend_Config_Ini لتحميل بيانات configuration من ملف INI , لنفترض اننا نضع هذه البيانات فى ملف على المسار path/to/config.ini/:

; Production site configuration data
[production]
webhost           = www.example.com
database.type     = pdo_mysql
database.host     = db.example.com
database.username = dbuser
database.password = secret
database.name     = dbname

; Staging site configuration data inherits from production and
; overrides values as necessary
[staging]
extends = production
database.host     = dev.example.com
database.username = devuser
database.password = devsecret
            
[ملاحظة] ملاحظة
لاحظ أن القواعد النحوية المتبعة فى كتابة محتويات ملف الـ INI هى نفسها التى تتوقعها دالة الـ PHP المسمى ()parse_ini_file و التى يستخدمها Zend_Config_Ini, إذا سمحت راجع الـ manual لتتعرف على السلوك الذى تتبعه Zend_Config_Ini فى عملها , مثل كيفية ترجمتها للقيم الخاصة مثل true, false, yes, no و null.

على حسب القواعد النحوية الخاصة بملفات الـ INI تم دعم امكانية الوراثة , و ذلك بأستخدام الكلمة المفتاحية extends , قيمة extends يجب ان تكون اسم القسم الذى سيتم الوراثة منه, و سيتم بعد ذلك تحميل البيانات من ملف الـ INI و ترجمتها على هذا الأساس :

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

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

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