Zend_Config_Xml.xml 4.3 KB

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