Zend_Config_Xml.xml 4.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <sect1 id="zend.config.adapters.xml">
  2. <title>Zend_Config_Xml</title>
  3. <para>
  4. يوفر <code>Zend_Config_Xml</code> للمبرمج امكانية حفظ البيانات الخاصة بإعدادات البرنامج ,
  5. و ذلك بصيغة XML بسيطة , ثم تمكنه من قرائه هذه البيانات داخل برنامجه بيسر من خلال
  6. استخدامه لنفس القواعد النحوية التى يستخمدها عند قرائته لقيمة محفوظة فى property داخل كائن PHP عادى.
  7. </para>
  8. <para>
  9. عنصر الجزر أو الـ "root element" الخاص بملف الـ XML يعتبر غير مهم هنا و يمكن اعطائه أى أسم تريده,
  10. أما المستوى الأول من عناصر الـ XML يعتبر مُحدِد لأقسام البيانات , و توفر صيغة XML امكانية ترتيب البيانات
  11. بشكل هرمى عن طريق عمل تداخل "nesting" بين العناصر فى المستويات أدنى مستوى أقسام البيانات,
  12. و سيتم اعتبار محتويات أخر عنصر فى هذا التداخل على انه القيمة "value" التى سيحملها هذا العتصر الهرمى البنية,
  13. أما وراثة الأقسام لبعضها فمدعومة عن طريقة خاصية "attribute" خاصة تسمى <code>extends</code> ,
  14. و يجب أن يتم تعريف قيمة هذا الـ attribute فى قسم البيانات الذى يقوم بالوراثة من قسم بيانات أخر ,
  15. حيث ستكون قيمة هذا الـ attribute هى أسم قسم البيانات الذى سيتم الوراثة منه.
  16. </para>
  17. <note>
  18. <title>Return type</title>
  19. <para>
  20. البيانات المقرؤة من خلال <code>Zend_Config_Xml</code> يتم اعتبارها دائما على انها من
  21. النوع string , و تم ترك عملية تحويل البيانات من نوع string إلى أى نوع بيانات أخر إلى المبرمجين ليتمكنوا
  22. من سد أحتياجاتهم الخاصة .
  23. </para>
  24. </note>
  25. <example>
  26. <title>إستخدام Zend_Config_Xml</title>
  27. <para>
  28. هذا المثال يوضح إستخدام بسيط لـ <code>Zend_Config_Xml</code> لتحميل بيانات الأعدادات
  29. من ملف INI , فى هذا المثال يوجد بيانات الأعدادات الخاصة بكل من مرحلة الأنتاج "production"
  30. و مرحلة التجهيز "staging" , و لأن بيانات الأعدادات الخاصة بمرحلة الـ staging تتشابه كثيراً مع
  31. تلك الخاصة بمرحلة الـ production , فتم جعل قسم بيانات الـ staging يرث من قسم بيانات الـ production ,
  32. ربما هذا لا ينطبق على بعض الحالات الأكثر تعقيداً و لكن دعونا نفترض أن بيانات الأعدادت التالية محفوظة
  33. على المسار <code>path/to/config.ini/</code> :
  34. </para>
  35. <programlisting role="xml"><![CDATA[<?xml version="1.0"?>
  36. <configdata>
  37. <production>
  38. <webhost>www.example.com</webhost>
  39. <database>
  40. <type>pdo_mysql</type>
  41. <host>db.example.com</host>
  42. <username>dbuser</username>
  43. <password>secret</password>
  44. <name>dbname</name>
  45. </database>
  46. </production>
  47. <staging extends="production">
  48. <database>
  49. <host>dev.example.com</host>
  50. <username>devuser</username>
  51. <password>devsecret</password>
  52. </database>
  53. </staging>
  54. </configdata>]]></programlisting>
  55. <para>
  56. الأن و لنفترض أن مطور البرنامج يريد تحميل بيانات الأعدادات الخاصة بمرحلة الـ staging من ملف الـ XML ,
  57. بالفعل إنه من السهل تحميل هذه البيانات فقط عن طريق تحديد مسار ملف الـ XML و أسم قسم البيانات staging :
  58. </para>
  59. <programlisting role="php"><![CDATA[<?php
  60. require_once 'Zend/Config/Xml.php';
  61. $config = new Zend_Config_Xml('/path/to/config.xml', 'staging');
  62. echo $config->database->host; // prints "dev.example.com"
  63. echo $config->database->name; // prints "dbname"]]></programlisting>
  64. </example>
  65. </sect1>
  66. <!--
  67. vim:se ts=4 sw=4 et:
  68. -->