Zend_Config_Json.xml 9.5 KB

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