| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24604 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.config.adapters.yaml">
- <title>Zend_Config_Yaml</title>
- <sect2 id="zend.config.adapters.yaml.intro">
- <title>Aperçu</title>
- <para>
- <ulink url="http://www.yaml.org/">YAML</ulink> est un acronyme récursif signifiant "YAML
- Ain't Markup Language", et peuyt se résumer en "standard de sérialization de données
- human friendly pour tous les langages de programmation." Il est souvent utilisé pour
- la configuration d'applications.
- </para>
- <para>
- <classname>Zend_Config_Yaml</classname> est une petite extensions de
- <classname>Zend_Config</classname>. Il inclut un analyseur capable de reconnaître la syntaxe
- YAML utilisées pour des besoins de configuration et permet de préciser d'autres analyseurs
- à utiliser pour le support de syntaxes complexes (e.g., ext/syck, spyc, sfYaml, etc.).
- </para>
- </sect2>
- <sect2 id="zend.config.adapters.yaml.quick-start">
- <title>Démarrage rapide</title>
- <para>
- Voici une version YAML de la configuration d'une application standard.
- </para>
- <programlisting language="yaml"><![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_Yaml</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_Yaml(
- APPLICATION_PATH . '/configs/application.yaml',
- 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>
- </sect2>
- <sect2 id="zend.config.adapters.yaml.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_Yaml Options</title>
- <varlistentry>
- <term>allow_modifications</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</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_Yaml</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>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>yaml_decoder</term>
- <listitem>
- <para>
- Par défaut, <classname>Zend_Config_Yaml</classname> utilise une analyseur interne,
- <methodname>Zend_Config_Yaml::decode()</methodname>, pour analyser et traiter les
- fichiers YAML. Vous pouvez préciser une fonction de callback à utiliser comme
- analyseur externe via cette option.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
- <sect2 id="zend.config.adapters.yaml.methods">
- <title>Méthodes disponibles</title>
- <variablelist>
- <varlistentry id="zend.config.adapters.yaml.methods.constructor">
- <term>
- <methodsynopsis>
- <methodname>__construct</methodname>
- <methodparam>
- <funcparams>$yaml, $section = null, $options = false</funcparams>
- </methodparam>
- </methodsynopsis>
- </term>
- <listitem>
- <para>
- Constructeur. <varname>$yaml</varname> doit pointer vers un fichier YAML 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.yaml.options">la section options</link>.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry id="zend.config.adapters.yaml.methods.decode">
- <term>
- <methodsynopsis>
- <methodname>decode</methodname>
- <methodparam>
- <funcparams>$yaml</funcparams>
- </methodparam>
- </methodsynopsis>
- </term>
- <listitem>
- <para>
- Analyse et transforme une chaîne YAML en un tableau PHP.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry id="zend.config.adapters.yaml.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
- YAML. 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.yaml.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>
- <sect2 id="zend.config.adapters.yaml.examples">
- <title>Exemples</title>
- <example id="zend.config.adapters.yaml.examples.sf-yaml">
- <title>Utiliser Zend_Config_Yaml avec sfYaml</title>
- <para>
- Comme précisé dans la <link linkend="zend.config.adapters.yaml.options">section des options
- </link>, <classname>Zend_Config_Yaml</classname> vous permet de spécifier votre propre
- analyseur YAML.
- </para>
- <para>
- <ulink url="http://components.symfony-project.org/yaml/">sfYaml</ulink> est un <ulink
- url="http://components.symfony-project.org/">Symfony component</ulink> qui implémente
- un analyseur YAML complet pour PHP, et inclus des fonctionnalités additionnelles comme l'analyse
- d'expressions PHP incluses dans du YAML. Dans cet exemple, nous utilisons
- <methodname>sfYaml::load()</methodname> comme méthode callback pour le décodage du YAML.
- <emphasis>(Note: ceci suppose que la classe <classname>sfYaml</classname> est déja chargée
- ou disponible pour auto-chargement.)</emphasis>
- </para>
- <programlisting language="php"><![CDATA[
- $config = new Zend_Config_Yaml(
- APPLICATION_PATH . '/configs/application.yaml',
- APPLICATION_ENV,
- array('yaml_decoder' => array('sfYaml', 'load'))
- );
- ]]></programlisting>
- </example>
- </sect2>
- </sect1>
|