Zend_Config-Introduction.xml 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.config.introduction">
  5. <title>Introduction</title>
  6. <para>
  7. <classname>Zend_Config</classname> est conçu pour simplifier l'accès et l'utilisation des
  8. données de configuration dans les applications. Il fournit une interface utilisateur basée
  9. sur des propriétés d'objets imbriquées. Les données de configuration peuvent venir de
  10. sources variées supportant une organisation hiérarchique des données. Actuellement
  11. <classname>Zend_Config</classname> fournit des adaptateurs pour les données de
  12. configuration qui sont stockées dans des fichier textes avec
  13. <link linkend="zend.config.adapters.ini"><classname>Zend_Config_Ini</classname></link> et
  14. <link linkend="zend.config.adapters.xml"><classname>Zend_Config_Xml</classname></link>.
  15. </para>
  16. <example id="zend.config.introduction.example.using">
  17. <title>Utilisation native de Zend_Config</title>
  18. <para>
  19. Normalement on s'attend à ce que les utilisateurs emploient une des classes
  20. d'adaptateur telles que
  21. <link linkend="zend.config.adapters.ini"><classname>Zend_Config_Ini</classname></link>
  22. ou
  23. <link linkend="zend.config.adapters.xml"><classname>Zend_Config_Xml</classname></link>,
  24. mais si les données de configuration sont disponibles dans un tableau
  25. <acronym>PHP</acronym>, on peut
  26. simplement passer les données au constructeur de <classname>Zend_Config</classname>
  27. afin d'utiliser une interface orientée objet simple&#160;:
  28. </para>
  29. <programlisting language="php"><![CDATA[
  30. // Fourni un tableau de configuration
  31. $configArray = array(
  32. 'webhost' => 'www.example.com',
  33. 'database' => array(
  34. 'adapter' => 'pdo_mysql',
  35. 'params' => array(
  36. 'host' => 'db.example.com',
  37. 'username' => 'dbuser',
  38. 'password' => 'secret',
  39. 'dbname' => 'mydatabase'
  40. )
  41. )
  42. );
  43. // Crée un objet à partir des données de configuration
  44. $config = new Zend_Config($configArray);
  45. // Affiche une donnée de configuration en particulier
  46. // (résultat : 'www.example.com')
  47. echo $config->webhost;
  48. // Utilise les données de configuration pour se connecter
  49. // à une base de données
  50. $db = Zend_Db::factory($config->database->adapter,
  51. $config->database->params->toArray());
  52. // Autre possibilité : fournir simplement l'objet Zend_Config.
  53. // Zend_Db factory sait comment l'interpréter.
  54. $db = Zend_Db::factory($config->database);
  55. ]]></programlisting>
  56. </example>
  57. <para>
  58. Comme illustré dans l'exemple ci-dessus, <classname>Zend_Config</classname> fournit une
  59. syntaxe de propriétés d'objets imbriquées pour accéder aux données de configuration passées
  60. à son constructeur.
  61. </para>
  62. <para>
  63. Avec l'accès de type orienté-objet aux données, <classname>Zend_Config</classname> a aussi
  64. la méthode <methodname>get()</methodname> qui retournera la valeur par défaut si l'élément
  65. n'existe pas. Par exemple&#160;:
  66. </para>
  67. <programlisting language="php"><![CDATA[
  68. $host = $config->database->get('host', 'localhost');
  69. ]]></programlisting>
  70. <example id="zend.config.introduction.example.file.php">
  71. <title>Utilisez Zend_Config avec un fichier de configuration en PHP</title>
  72. <para>
  73. Il est souvent souhaitable d'utiliser une fichier de configuration en pur
  74. <acronym>PHP</acronym>. Le code
  75. suivant illustre comment ceci peut être facilement réalisé&#160;:
  76. </para>
  77. <programlisting language="php"><![CDATA[
  78. // config.php
  79. return array(
  80. 'webhost' => 'www.example.com',
  81. 'database' => array(
  82. 'adapter' => 'pdo_mysql',
  83. 'params' => array(
  84. 'host' => 'db.example.com',
  85. 'username' => 'dbuser',
  86. 'password' => 'secret',
  87. 'dbname' => 'mydatabase'
  88. )
  89. )
  90. );
  91. ]]></programlisting>
  92. <programlisting language="php"><![CDATA[
  93. // Lecture de la configuration
  94. $config = new Zend_Config(require 'config.php');
  95. // Affiche une donnée de configuration ('www.example.com')
  96. echo $config->webhost;
  97. ]]></programlisting>
  98. </example>
  99. </sect1>