Zend_Config_Json.xml 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <sect1 id="zend.config.adapters.json">
  4. <title>Zend_Config_Json</title>
  5. <sect2 id="zend.config.adapters.json.intro">
  6. <title>Aperçu</title>
  7. <para>
  8. <ulink url="http://www.json.org/">JSON</ulink> est un acronyme pour "JavaScript Object
  9. Notation"; compatible avec JavaScript, c'est un format d'échange de données inter-langage.
  10. <classname>Zend_Config_Json</classname> est une extension de
  11. <classname>Zend_Config</classname> permettant l'utilisation du format <acronym>JSON</acronym>.
  12. </para>
  13. </sect2>
  14. <sect2 id="zend.config.adapters.json.quick-start">
  15. <title>QuickStart</title>
  16. <para>
  17. Voici une version JSON de la configuration d'une application standard.
  18. </para>
  19. <programlisting language="json"><![CDATA[
  20. {
  21. "production":{
  22. "phpSettings":{
  23. "display_startup_errors": false,
  24. "display_errors": false
  25. },
  26. "includePaths":{
  27. "library": "APPLICATION_PATH/../library"
  28. },
  29. "bootstrap":{
  30. "path": "APPLICATION_PATH/Bootstrap.php",
  31. "class": "Bootstrap"
  32. },
  33. "appnamespace": "Application",,
  34. "resources":{
  35. "frontController":{
  36. "controllerDirectory": "APPLICATION_PATH/controllers",
  37. "moduleDirectory": "APPLICATION_PATH/modules",
  38. "params":{
  39. "displayExceptions": false
  40. }
  41. },
  42. "modules":[],
  43. "db":{
  44. "adapter": "pdo_sqlite",
  45. "params":{
  46. "dbname": "APPLICATION_PATH/../data/db/application.db"
  47. }
  48. },
  49. "layout":{
  50. "layoutPath": "APPLICATION_PATH/layouts/scripts/"
  51. }
  52. }
  53. },
  54. "staging":{
  55. "_extends": "production"
  56. },
  57. "testing":{
  58. "_extends": "production",
  59. "phpSettings":{
  60. "display_startup_errors": true,
  61. "display_errors": true
  62. },
  63. },
  64. "development":{
  65. "_extends": "production",
  66. "phpSettings":{
  67. "display_startup_errors": true,
  68. "display_errors": true
  69. },
  70. "resources":{
  71. "frontController":{
  72. "params":{
  73. "displayExceptions": true
  74. }
  75. }
  76. }
  77. }
  78. }
  79. ]]></programlisting>
  80. <para>
  81. Pour l'utiliser, instanciez simplement <classname>Zend_Config_Json</classname> en lui
  82. indiquant le chemin vers ce fichier ainsi que la section à charger. Par défaut,
  83. les constantes trouvées dans les valeurs seront substituées par leurs valeurs.
  84. </para>
  85. <programlisting language="php"><![CDATA[
  86. $config = new Zend_Config_Json(
  87. APPLICATION_PATH . '/configs/application.json',
  88. APPLICATION_ENV
  89. );
  90. ]]></programlisting>
  91. <para>
  92. Une fois instancié, l'utilisation est classique, comme un objet de configuration.
  93. </para>
  94. <programlisting language="php"><![CDATA[
  95. $db = Zend_Db::factory($config->resources->db);
  96. ]]></programlisting>
  97. <warning>
  98. <title>Utilisez les constantes avec précaution</title>
  99. <para>
  100. <acronym>JSON</acronym> possède une structure stricte concernant les types de données.
  101. Ainsi, vous devez vous assurer que vos constantes sont utilisées correctement. Pour les
  102. constantes de type chaine de caractères, encapsulez les de doubles quotes (""). Pour
  103. les constantes d'autres types, vous pouvez omettre les quotes, mais soyez alors
  104. certains qu'elles ne retournent pas des chaines, sinon vous rencontrerez des erreurs
  105. d'analyse. Si vous doutez, encapsulez le contenu dans des chaines à doubles quotes.
  106. </para>
  107. </warning>
  108. </sect2>
  109. <sect2 id="zend.config.adapters.json.options">
  110. <title>Options de configuration</title>
  111. <para>
  112. Les options suivantes peuvent être passées comme clés au troisième paramètre
  113. <varname>$options</varname> du constructeur.
  114. </para>
  115. <variablelist>
  116. <title>Zend_Config_Json Options</title>
  117. <varlistentry>
  118. <term>allow_modifications/allowModifications</term>
  119. <listitem>
  120. <para>
  121. Par défaut, <classname>Zend_Config</classname> est en lecture seule.
  122. Passer cette option à <constant>true</constant> autorisera la modification
  123. de l'objet.
  124. </para>
  125. </listitem>
  126. </varlistentry>
  127. <varlistentry>
  128. <term>skip_extends/skipExtends</term>
  129. <listitem>
  130. <para>
  131. Par défaut, à chaque fois qu'une section étend une autre,
  132. <classname>Zend_Config</classname> regroupera cette section avec son parent.
  133. Utiliser le booléen <constant>true</constant> pour cette option désactivera ce
  134. comportement, la configuration de la section sera telle-quelle.
  135. </para>
  136. </listitem>
  137. </varlistentry>
  138. <varlistentry>
  139. <term>ignore_constants</term>
  140. <listitem>
  141. <para>
  142. Par défaut, <classname>Zend_Config_Json</classname> remplacera toutes les
  143. constantes trouvées dans le fichier par leurs valeurs respectives. Passez
  144. le booléen <constant>true</constant> à cette option pour désactiver cette
  145. fonctionnalité.
  146. </para>
  147. <para>
  148. Notez qu'ignorer les constantes peut mener à des erreurs d'analyse, en particulier
  149. si les constantes sont utilisées pour des entiers, des flottants ou des valeurs
  150. booléennes. La manière la plus sûre est d'encapsuler les constantes dans des
  151. quotes.
  152. </para>
  153. </listitem>
  154. </varlistentry>
  155. </variablelist>
  156. </sect2>
  157. <sect2 id="zend.config.adapters.json.methods">
  158. <title>Méthodes disponibles</title>
  159. <variablelist>
  160. <varlistentry id="zend.config.adapters.json.methods.constructor">
  161. <term>
  162. <methodsynopsis>
  163. <methodname>__construct</methodname>
  164. <methodparam>
  165. <funcparams>$json, $section = null, $options = false</funcparams>
  166. </methodparam>
  167. </methodsynopsis>
  168. </term>
  169. <listitem>
  170. <para>
  171. Constructeur. <varname>$json</varname> doit pointer vers un fichier JSON valide.
  172. Si <varname>$section</varname> est précisé, seule la section indiquée sera analysée.
  173. <varname>$options</varname> est documenté dans <link
  174. linkend="zend.config.adapters.json.options">la section options</link>.
  175. </para>
  176. </listitem>
  177. </varlistentry>
  178. <varlistentry id="zend.config.adapters.json.methods.set-ignore-constants">
  179. <term>
  180. <methodsynopsis>
  181. <methodname>setIgnoreConstants</methodname>
  182. <methodparam>
  183. <funcparams>$flag</funcparams>
  184. </methodparam>
  185. </methodsynopsis>
  186. </term>
  187. <listitem>
  188. <para>
  189. Cette méthode <emphasis>statique</emphasis> est utilisée pour changer le
  190. comportement global de l'analyse des constantes trouvées dans les fichiers
  191. JSON. Par défaut, les constantes sont remplacées par leurs valeurs. Passer
  192. le booléen <constant>true</constant> à cette méthode surchargera ce
  193. comportement. (Vous pouvez changer le comportement par instance en utilisant
  194. l'option <varname>ignore_constants</varname>.)
  195. </para>
  196. </listitem>
  197. </varlistentry>
  198. <varlistentry id="zend.config.adapters.json.methods.ignore-constants">
  199. <term>
  200. <methodsynopsis>
  201. <methodname>ignoreConstants</methodname>
  202. <methodparam>
  203. <funcparams></funcparams>
  204. </methodparam>
  205. </methodsynopsis>
  206. </term>
  207. <listitem>
  208. <para>
  209. Cette méthode <emphasis>statique</emphasis> retourne la valeur actuelle
  210. de <varname>ignore_constants</varname>.
  211. </para>
  212. </listitem>
  213. </varlistentry>
  214. </variablelist>
  215. </sect2>
  216. </sect1>