File: Zend_Config_Yaml.xml

package info (click to toggle)
zendframework 1.12.9%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 133,584 kB
  • sloc: xml: 1,311,829; php: 570,173; sh: 170; makefile: 125; sql: 121
file content (278 lines) | stat: -rw-r--r-- 10,687 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
<?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>