Zend_Config_Xml.xml 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <sect1 id="zend.config.adapters.xml">
  2. <title>Zend_Config_Xml</title>
  3. <para>
  4. <code>Zend_Config_Xml</code> staat programmeurs toe om configuratiedate in een eenvoudig
  5. XML bestand op te slaan en deze via geneste objecteigenschap syntax te lezen. Het root
  6. element van het XML bestand is irrelevant en kan een willekeurige naam hebben. Het eerste
  7. niveau van de XML elementen komt overeen met configuratiedata secties. Het XML formaat
  8. ondersteunt hiërarchische organisatie via geneste XML elementen onder de sectieniveau
  9. elementen. De inhoud van het laagste XML element komt overeen met de waarde van een
  10. configuratiedata element. Sectie overerving wordt ondersteund via een speciaal XML
  11. attribuut genaamd <code>extends</code>, en de waarde van dit attribuut komt overeen met de
  12. naam van de sectie waarvan de data moet worden overgeërfd door de uitbreidende sectie.
  13. </para>
  14. <note>
  15. <title>Teruggeef type</title>
  16. <para>
  17. Configuratiedata die door <code>Zend_Config_Xml</code> word ingelezen wordt altijd als
  18. string terug gegeven. Omzetting van data van strings naar andere types wordt aan de
  19. programmeur overgelaten om aan hun specifieke behoeften te voldoen.
  20. </para>
  21. </note>
  22. <example id="zend.config.adapters.xml.example.using">
  23. <title>Zend_Config_Xml gebruiken</title>
  24. <para>
  25. Dit voorbeeld illustreert een basisgebruik van <code>Zend_Config_Xml</code> voor het
  26. inladen van configuratiedata vanuit een XML bestand. In dit voorbeeld vind je
  27. configuratiedata voor zowel een productiesysteem als een preproductiesysteem. Omdat
  28. de preproductiesysteem configuratiedata sterk overeenkomt met de productieserver
  29. configuratiedata, erft de preproductieserver sectie van de productie sectie. In dit
  30. geval is de beslissing willekeurig en zou dit andersom kunnen worden geschreven, de
  31. productieserver sectie zou erven van de preproductieserver sectie, alhoewel het niet
  32. het geval zou kunnen zijn in meer complexe situaties. Veronderstel dan dat de volgende
  33. configuratiedata in <code>/path/to/config.xml</code> staat:
  34. </para>
  35. <programlisting role="xml"><![CDATA[<?xml version="1.0"?>
  36. <configdata>
  37. <productie>
  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. </productie>
  47. <preproductie extends="productie">
  48. <database>
  49. <host>dev.example.com</host>
  50. <username>devuser</username>
  51. <password>devsecret</password>
  52. </database>
  53. </preproductie>
  54. </configdata>]]></programlisting>
  55. <para>
  56. Veronderstel vervolgens dat de programmeur de preproductie configuratiedata van het
  57. XML bestand nodig heeft. Het is eenvoudig om die data in te laden door het XML bestand
  58. en de preproductie sectie te specifiëren:
  59. </para>
  60. <programlisting role="php"><![CDATA[<?php
  61. require_once 'Zend/Config/Xml.php';
  62. $config = new Zend_Config_Xml('/path/to/config.xml', 'preproductie');
  63. echo $config->database->host; // geeft "dev.example.com"
  64. echo $config->database->name; // geeft "dbname"]]></programlisting>
  65. </example>
  66. </sect1>
  67. <!--
  68. vim:se ts=4 sw=4 et:
  69. -->