| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.config.adapters.json">
- <title>Zend_Config_Json</title>
- <sect2 id="zend.config.adapters.json.intro">
- <title>Aperçu</title>
- <para>
- <ulink url="http://www.json.org/">JSON</ulink> est un acronyme pour "JavaScript Object
- Notation"; compatible avec JavaScript, c'est un format d'échange de données
- inter-langage. <classname>Zend_Config_Json</classname> est une extension de
- <classname>Zend_Config</classname> permettant l'utilisation du format
- <acronym>JSON</acronym>.
- </para>
- </sect2>
- <sect2 id="zend.config.adapters.json.quick-start">
- <title>Démarrage rapide</title>
- <para>
- Voici une version <acronym>JSON</acronym> de la configuration d'une application
- standard.
- </para>
- <programlisting language="json"><![CDATA[
- {
- "production":{
- "phpSettings":{
- "display_startup_errors": false,
- "display_errors": false
- },
- "includePaths":{
- "library": "APPLICATION_PATH/../library"
- },
- "bootstrap":{
- "path": "APPLICATION_PATH/Bootstrap.php",
- "class": "Bootstrap"
- },
- "appnamespace": "Application",,
- "resources":{
- "frontController":{
- "controllerDirectory": "APPLICATION_PATH/controllers",
- "moduleDirectory": "APPLICATION_PATH/modules",
- "params":{
- "displayExceptions": false
- }
- },
- "modules":[],
- "db":{
- "adapter": "pdo_sqlite",
- "params":{
- "dbname": "APPLICATION_PATH/../data/db/application.db"
- }
- },
- "layout":{
- "layoutPath": "APPLICATION_PATH/layouts/scripts/"
- }
- }
- },
- "staging":{
- "_extends": "production"
- },
- "testing":{
- "_extends": "production",
- "phpSettings":{
- "display_startup_errors": true,
- "display_errors": true
- },
- },
- "development":{
- "_extends": "production",
- "phpSettings":{
- "display_startup_errors": true,
- "display_errors": true
- },
- "resources":{
- "frontController":{
- "params":{
- "displayExceptions": true
- }
- }
- }
- }
- }
- ]]></programlisting>
- <para>
- Pour l'utiliser, instanciez simplement <classname>Zend_Config_Json</classname> en lui
- indiquant le chemin vers ce fichier ainsi que la section à charger. Par défaut,
- les constantes trouvées dans les valeurs seront substituées par leurs valeurs.
- </para>
- <programlisting language="php"><![CDATA[
- $config = new Zend_Config_Json(
- APPLICATION_PATH . '/configs/application.json',
- APPLICATION_ENV
- );
- ]]></programlisting>
- <para>
- Une fois instancié, l'utilisation est classique, comme un objet de configuration.
- </para>
- <programlisting language="php"><![CDATA[
- $db = Zend_Db::factory($config->resources->db);
- ]]></programlisting>
- <warning>
- <title>Utilisez les constantes avec précaution</title>
- <para>
- <acronym>JSON</acronym> possède une structure stricte concernant les types de
- données. Ainsi, vous devez vous assurer que vos constantes sont utilisées
- correctement. Pour les constantes de type chaîne de caractères, encapsulez les
- avec des doubles quotes (""). Pour les constantes d'autres types, vous pouvez
- omettre les quotes, mais soyez alors certains qu'elles ne retournent pas des
- chaînes, sinon vous rencontrerez des erreurs d'analyse. Si vous doutez,
- encapsulez le contenu dans des chaînes à doubles quotes.
- </para>
- </warning>
- </sect2>
- <sect2 id="zend.config.adapters.json.options">
- <title>Options de configuration</title>
- <para>
- Les options suivantes peuvent être passées comme clés au troisième paramètre
- <varname>$options</varname> du constructeur.
- </para>
- <variablelist>
- <title>Zend_Config_Json Options</title>
- <varlistentry>
- <term>allow_modifications/allowModifications</term>
- <listitem>
- <para>
- Par défaut, <classname>Zend_Config</classname> est en lecture seule.
- Passer cette option à <constant>true</constant> autorisera la modification
- de l'objet.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>skip_extends/skipExtends</term>
- <listitem>
- <para>
- Par défaut, à chaque fois qu'une section étend une autre,
- <classname>Zend_Config</classname> regroupera cette section avec son
- parent. Utiliser le booléen <constant>true</constant> pour cette option
- désactivera ce comportement, la configuration de la section sera
- telle-quelle.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>ignore_constants</term>
- <listitem>
- <para>
- Par défaut, <classname>Zend_Config_Json</classname> remplacera toutes les
- constantes trouvées dans le fichier par leurs valeurs respectives. Passez
- le booléen <constant>true</constant> à cette option pour désactiver cette
- fonctionnalité.
- </para>
- <para>
- Notez qu'ignorer les constantes peut mener à des erreurs d'analyse, en
- particulier si les constantes sont utilisées pour des entiers, des
- flottants ou des valeurs booléennes. La manière la plus sûre est
- d'encapsuler les constantes dans des quotes.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
- <sect2 id="zend.config.adapters.json.methods">
- <title>Méthodes disponibles</title>
- <variablelist>
- <varlistentry id="zend.config.adapters.json.methods.constructor">
- <term>
- <methodsynopsis>
- <methodname>__construct</methodname>
- <methodparam>
- <funcparams>$json, $section = null, $options = false</funcparams>
- </methodparam>
- </methodsynopsis>
- </term>
- <listitem>
- <para>
- Constructeur. <varname>$json</varname> doit être une chaîne de caractères
- <acronym>JSON</acronym> valide ou doit pointer vers un fichier
- <acronym>JSON</acronym> valide. Si <varname>$section</varname> est précisé,
- seule la section indiquée sera analysée. <varname>$options</varname> est
- documenté dans <link
- linkend="zend.config.adapters.json.options">la section options</link>.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry id="zend.config.adapters.json.methods.set-ignore-constants">
- <term>
- <methodsynopsis>
- <methodname>setIgnoreConstants</methodname>
- <methodparam>
- <funcparams>$flag</funcparams>
- </methodparam>
- </methodsynopsis>
- </term>
- <listitem>
- <para>
- Cette méthode <emphasis>statique</emphasis> est utilisée pour changer le
- comportement global de l'analyse des constantes trouvées dans les fichiers
- <acronym>JSON</acronym>. Par défaut, les constantes sont remplacées par
- leurs valeurs. Passer le booléen <constant>true</constant> à cette méthode
- surchargera ce comportement. (Vous pouvez changer le comportement par
- instance en utilisant l'option <varname>ignore_constants</varname>.)
- </para>
- </listitem>
- </varlistentry>
- <varlistentry id="zend.config.adapters.json.methods.ignore-constants">
- <term>
- <methodsynopsis>
- <methodname>ignoreConstants</methodname>
- <methodparam>
- <funcparams></funcparams>
- </methodparam>
- </methodsynopsis>
- </term>
- <listitem>
- <para>
- Cette méthode <emphasis>statique</emphasis> retourne la valeur actuelle
- de <varname>ignore_constants</varname>.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
- </sect1>
|