Переглянути джерело

Added some french doc

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@15517 44c647ce-9c0f-0410-b52a-842ac1e357ba
doctorrock83 16 роки тому
батько
коміт
8ca34e983f

+ 180 - 0
documentation/manual/fr/module_specs/Zend_Loader-Autoloader-Resource.xml

@@ -0,0 +1,180 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect1 id="zend.loader.autoloader-resource">
+    <title>Autoloaders de ressources</title>
+
+    <para>
+        Les autoloaders de ressources servent à manipuler du code de librairies dans des espaces de noms,
+        respectant les conventions de codage du Zend Framework, mais n'ayant pas une correspondance
+        1:1 entre le nom de la classe et la structure du dossier. Leur but est de faciliter le chargement
+        du code des ressources de l'application, comme les modèles, les ACLs, les formulaires ...
+    </para>
+
+    <para>
+        Les autoloaders de ressources s'enregistrent dans l'<link
+            linkend="zend.loader.autoloader">autoloader</link> à leur instanciation, avec l'espace de noms
+        auquels ils sont rattachés. Ceci permet de facilement isoler du code dans des dossiers, sous l'espace
+        de noms, tout en gardant les bénéfices de l'autoload.
+    </para>
+
+    <sect2 id="zend.loader.autoloader-resource.usage">
+        <title>Utilisation de l'autoloader de ressources</title>
+
+        <para>
+            Soit la structure de répertoires suivante:
+        </para>
+
+        <programlisting role="text"><![CDATA[
+path/to/some/directory/
+    acls/
+        Site.php
+    forms/
+        Login.php
+    models/
+        User.php
+]]></programlisting>
+
+        <para>
+            Au sein de ce répertoire, toutes les classes sont préfixées par l'espace de noms
+            "My_". Dans le dossier "acls", le préfixe de composant "Acl_" est ajouté, ce qui
+            donne un nom de classe final "My_Acl_Site". Aussi, le dossier "forms" 
+            correspond à "Form_", ce qui donne "My_Form_Login". Le dossier "models" n'a pas 
+            d'espace de noms particulier, donnant donc "My_User".
+        </para>
+
+        <para>
+            Pour instancier un autoloader de ressoucres, il faut au minimum lui passer son dossier
+            de travail (base path), et le nom de l'espace de noms correspondant:
+        </para>
+
+        <programlisting role="php"><![CDATA[
+$resourceLoader = new Zend_Loader_Autoloader_Resource(array(
+    'basePath'  => 'path/to/some/directory',
+    'namespace' => 'My',
+));
+]]></programlisting>
+
+        <note>
+            <title>Espace de noms de base</title>
+
+            <para>
+                Dans <classname>Zend_Loader_Autoloader</classname>, vous devez spécifier le
+                underscore final ("_") dans votre espace de noms.
+                <classname>Zend_Loader_Autoloader_Resource</classname> suppose par contre
+                que tout le code à auto-charger utilisera le séparateur d'espaces de noms
+                underscore. Ainsi, vous n'avez pas besoin de le préciser avec l'autoloader
+                de ressources.
+            </para>
+        </note>
+
+        <para>
+            Maintenant que notre autoloader est configuré, nous pouvons ajouter des composants
+            à auto-charger. Ceci se fait via la méthode <code>addResourceType()</code>, qui accepte
+            3 arguments : un "type" de ressource, utiliser en interne comme nom de référence; le sous
+            dossier dans lequel la ressource en question est logé, et l'espace de noms du composant
+            à rajouter à l'espace de noms général. Voici un exemple:
+        </para>
+
+        <programlisting role="php"><![CDATA[
+$resourceLoader->addResourceType('acl', 'acls/', 'Acl')
+               ->addResourceType('form', 'forms/', 'Form')
+               ->addResourceType('model', 'models/');
+]]></programlisting>
+
+        <para>
+            Aussi, vous auriez pu effectuer la même action avec un tableau PHP.
+            <code>addResourceTypes()</code> est alors appropriée:
+        </para>
+
+        <programlisting role="php"><![CDATA[
+$resourceLoader->addResourceTypes(array(
+    'acl' => array(
+        'path'      => 'acls/',
+        'namespace' => 'Acl',
+    ),
+    'form' => array(
+        'path'      => 'forms/',
+        'namespace' => 'Form',
+    ),
+    'model' => array(
+        'path'      => 'models/',
+    ),
+));
+]]></programlisting>
+
+        <para>
+            Enfin, vous pouvez spécifier tout cela d'un seul coup avec des tableaux nichés.
+            La clé doit alors être "resourceTypes":
+        </para>
+
+        <programlisting role="php"><![CDATA[
+$resourceLoader = new Zend_Loader_Autoloader_Resource(array(
+    'basePath'      => 'path/to/some/directory',
+    'namespace'     => 'My',
+    'resourceTypes' => array(
+        'acl' => array(
+            'path'      => 'acls/',
+            'namespace' => 'Acl',
+        ),
+        'form' => array(
+            'path'      => 'forms/',
+            'namespace' => 'Form',
+        ),
+        'model' => array(
+            'path'      => 'models/',
+        ),
+    ),
+));
+]]></programlisting>
+    </sect2>
+
+    <sect2 id="zend.loader.autoloader-resource.module">
+        <title>L'autoloader de ressource Module</title>
+
+        <para>
+            Zend Framework fournit une implémentation concrète de
+            <classname>Zend_Loader_Autoloader_Resource</classname> qui contient des correspondances
+            de ressources pour mettre en avant la structure modulaire par défaut que propose le
+            Zend Framework dans ses applications MVC. Ce chargeur,
+            <classname>Zend_Application_Module_Autoloader</classname>, propose le mapping suivant:
+        </para>
+
+        <programlisting role="text"><![CDATA[
+api/         => Api
+forms/       => Form
+models/      => Model
+    DbTable/ => Model_DbTable
+plugins/     => Plugin
+]]></programlisting>
+
+        <para>
+            Par exemple, avec un module dont le préfixe est "Blog_", le chargement de 
+            la classe "Blog_Form_Entry" mènerait au chargement du fichier "forms/Entry.php".
+        </para>
+
+        <para>
+            En utilisant les bootstraps de modules avec <classname>Zend_Application</classname>, une
+            instance de <classname>Zend_Application_Module_Autoloader</classname> sera crée pour chaque module
+            utilisé.
+        </para>
+    </sect2>
+
+    <sect2 id="zend.loader.autoloader-resource.factory">
+        <title>Utiliser les autoloaders de ressources comme fabriques d'objets</title>
+        <para></para>
+        <!-- @todo -->
+    </sect2>
+
+    <sect2 id="zend.loader.autoloader-resource.reference">
+        <title>Référence de l'autoloader de ressources</title>
+        <para></para>
+        <!-- @todo -->
+    </sect2>
+
+    <!-- @todo
+            Write section on using load() functionality
+                Potentially add functionality to load() to allow passing arguments
+                Show how to use overloading to retrieve class instances
+            Write reference section
+    -->
+</sect1>

+ 435 - 0
documentation/manual/fr/module_specs/Zend_Loader-Autoloader.xml

@@ -0,0 +1,435 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect1 id="zend.loader.autoloader">
+    <title>L'autoloader</title>
+
+    <para>
+        <classname>Zend_Loader_Autoloader</classname> propose une solution intelligente et souple
+        d'auto-chargement (autoload) pour Zend Framework. Il a été conçu pour remplir plusieurs
+        objectifs:
+    </para>
+
+    <itemizedlist>
+        <listitem><para>
+            Proposer un autoloader à base d'espaces de noms. (Auparavant, les espaces de noms étaient
+            intercéptés.)
+        </para></listitem>
+
+        <listitem><para>
+            Proposer d'enregistrer des autoloads personnalisés, et les gérer comme une pile.
+            (A l'heure actuelle, ceci permet de s'affranchir de certaines contraintes avec
+            <code>spl_autoload</code>, qui ne permet pas le réenregistrement d'une fonction
+            à base d'objet).
+        </para></listitem>
+
+        <listitem><para>
+            Proposer un autoload optimisé pour les espaces de noms, qui permet une meilleure
+            résolution des noms de classes.
+        </para></listitem>
+    </itemizedlist>
+
+    <para>
+        <classname>Zend_Loader_Autoloader</classname> est un singleton, il est donc
+        universellement accessible. Ceci permet d'enregistrer des autoload depuis n'importe
+        où dans votre code.
+    </para>
+
+    <sect2 id="zend.loader.autoloader.usage">
+        <title>Utiler le chargeur automatique (autoloadeur)</title>
+
+        <para>
+            La première fois qu'une instance de l'autoloader est créee, il s'enregistre lui-même sur la
+            fonction <code>spl_autoload</code>. Vous récupérez son instance via la méthode
+            <code>getInstance()</code>:
+        </para>
+
+        <programlisting role="php"><![CDATA[
+$autoloader = Zend_Loader_Autoloader::getInstance();
+]]></programlisting>
+
+        <para>
+            Par défaut, l'autoloader est configurer pour capturer les espaces de noms "Zend_" et
+            "ZendX_". Si votre propre librairie de code utilise un espace de noms différent, vous
+            devez alors enregistrer celui-ci avec la méthode <code>registerNamespace()</code>.
+            Par exemple, si votre librairie possède l'espace de noms "My_", vous devriez agir
+            comme cela::
+        </para>
+
+        <programlisting role="php"><![CDATA[
+$autoloader->registerNamespace('My_');
+]]></programlisting>
+
+        <note>
+            <title>Préfixes des espaces de noms</title>
+
+            <para>
+                Notez que l'exemple précédent enregistre "My_" et non "My".
+                Ceci car <classname>Zend_Loader_Autoloader</classname> est un autoloader
+                global, et n'a aucune idée qu'un préfixe de classe possède un underscore.
+                Si c'est <emphasis>votre </emphasis> cas, alors faites le apparaitre lors
+                de son enregistrement dans l'autoloader.
+            </para>
+        </note>
+
+        <para>
+            Il est aussi possible que vous enregistriez vos propres fonctions d'autoload,
+            optionnellement avec un espace de noms spécifique,
+            <classname>Zend_Loader_Autoloader</classname> va alors tenter de l'utiliser lorsque
+            nécessaire (lors de l'auto-chargement).
+        </para>
+
+        <para>
+            Par exemple, vous pourriez avoir besoin d'un ou plusieurs composants eZcomponents
+            avec votre application Zend Framework. Pour utiliser ses capacités d'autoload,
+            ajoutez son autoloader à votre pile grâce à <code>pushAutoloader()</code>:
+        </para>
+
+        <programlisting role="php"><![CDATA[
+$autoloader->pushAutoloader(array('ezcBase', 'autoload'), 'ezc');
+]]></programlisting>
+
+        <para>
+            Ceci indique que les classes dont le nom commence par "ezc" devra utiliser cette
+            fonction d'autoload.
+        </para>
+
+        <para>
+            <code>unshiftAutoloader()</code>, elle, rajoute la méthode d'autoload au début de la pile.
+        </para>
+
+        <para>
+            Par défaut, <classname>Zend_Loader_Autoloader</classname> ne supprime aucune erreur
+            lorsqu'il utilise son autoloader interne, s'appuyant sur
+            <classname>Zend_Loader::loadClass()</classname>. La plupart du temps, c'est le
+            comportement recherché. Cependant, si vous voulez faire apparaitre les éventuelles
+            erreurs de chargement, appelez alors <code>suppressNotFoundWarnings()</code>:
+        </para>
+
+        <programlisting role="php"><![CDATA[
+$autoloader->suppressNotFoundWarnings(true);
+]]></programlisting>
+
+        <para>
+            Enfin, il se peut que vous vouliez que l'autoloader par défaut charge toutes
+            les classes de tous les espaces de noms. Par exemple, les librairies PEAR
+            ne partagent pas un espace de noms commun, ce qui rend la tâche difficile
+            si on veut associer chacun des espaces de noms internes. Utilisez alors
+            <code>setFallbackAutoloader()</code> pour rendre l'autoloader "global"
+            et charger tous les espaces de noms:
+        </para>
+
+        <programlisting role="php"><![CDATA[
+$autoloader->setFallbackAutoloader(true);
+]]></programlisting>
+    </sect2>
+
+    <sect2 id="zend.loader.autoloader.interface">
+        <title>L'interface de l'autoloader</title>
+
+        <para>
+            Vous pouvez donc ajouter des fonctions de chargement par espace de noms, mais
+            Zend Framework définit aussi une interface pour l'autoload,
+            <classname>Zend_Loader_Autoloader_Interface</classname>:
+        </para>
+
+        <programlisting role="php"><![CDATA[
+interface Zend_Loader_Autoloader_Interface
+{
+    public function autoload($class);
+}
+]]></programlisting>
+
+        <para>
+            L'utilisation de l'interface vous permet de passer un objet aux méthodes 
+            <code>pushAutoloader()</code> et <code>unshiftAutoloader()</code> de
+            <classname>Zend_Loader_Autoloader</classname>:
+        </para>
+
+        <programlisting role="php"><![CDATA[
+// Foo_Autoloader implémente Zend_Loader_Autoloader_Interface:
+$foo = new Foo_Autoloader();
+
+$autoloader->pushAutoloader($foo, 'Foo_');
+]]></programlisting>
+    </sect2>
+
+    <sect2 id="zend.loader.autoloader.reference">
+        <title>Référence de l'autoloader</title>
+
+        <para>
+            Voici un guide des méthodes de <classname>Zend_Loader_Autoloader</classname>.
+        </para>
+
+        <table id="zend.loader.autoloader.reference.api">
+            <title>Zend_Loader_Autoloader Methods</title>
+            <tgroup cols="4">
+                <thead>
+                    <row>
+                        <entry>Méthode</entry>
+                        <entry>Valeur de retour</entry>
+                        <entry>Paramètres</entry>
+                        <entry>Description</entry>
+                    </row>
+                </thead>
+                <tbody>
+                    <row>
+                        <entry><code>getInstance()</code></entry>
+                        <entry><classname>Zend_Loader_Autoloader</classname></entry>
+                        <entry>N/A</entry>
+                        <entry><para>
+                            Retourne l'instance singleton de <classname>Zend_Loader_Autoloader</classname>
+                            Au premier appel, enregistre l'autoloader avec <code>spl_autoload</code>.
+                            Cette méthode est statique.
+                        </para></entry>
+                    </row>
+
+                    <row>
+                        <entry><code>resetInstance()</code></entry>
+                        <entry><code>void</code></entry>
+                        <entry>N/A</entry>
+                        <entry><para>
+                            Remet à zéro l'état interne de <classname>Zend_Loader_Autoloader</classname>
+                            en désenregistrant les fonctions d'autoload éventuellement présentes, ainsi que
+                            tous les espaces de noms.
+                        </para></entry>
+                    </row>
+
+                    <row>
+                        <entry><code>autoload($class)</code></entry>
+                        <entry><code>string|false</code></entry>
+                        <entry><itemizedlist>
+                            <listitem><para>
+                                <code>$class</code>, <emphasis>requis</emphasis>.
+                                Une classe à charger.
+                            </para></listitem>
+                        </itemizedlist></entry>
+                        <entry><para>
+                            Essaye de résoudre un nom de classe en fichier, et tente de la charger.
+                        </para></entry>
+                    </row>
+
+                    <row>
+                        <entry><code>setDefaultAutoloader($callback)</code></entry>
+                        <entry><classname>Zend_Loader_Autoloader</classname></entry>
+                        <entry><itemizedlist>
+                            <listitem><para>
+                                <code>$callback</code>, <emphasis>requis</emphasis>.
+                            </para></listitem>
+                        </itemizedlist></entry>
+                        <entry><para>
+                            Spécifie une fonction PHP à utiliser comme autoloader par défaut.
+                        </para></entry>
+                    </row>
+
+                    <row>
+                        <entry><code>getDefaultAutoloader()</code></entry>
+                        <entry><code>callback</code></entry>
+                        <entry>N/A</entry>
+                        <entry><para>
+                            Retourne la fonction d'autoload par défaut, il s'agit par défaut de
+                            <classname>Zend_Loader::loadClass()</classname>.
+                        </para></entry>
+                    </row>
+
+                    <row>
+                        <entry><code>setAutoloaders(array $autoloaders)</code></entry>
+                        <entry><classname>Zend_Loader_Autoloader</classname></entry>
+                        <entry><itemizedlist>
+                            <listitem><para>
+                                <code>$autoloaders</code>, <emphasis>requis</emphasis>.
+                            </para></listitem>
+                        </itemizedlist></entry>
+                        <entry><para>
+                            Passe une liste d'autoloaders (sous forme de noms
+                            de fonctions PHP) à ajouter à la pile de ceux déja présents.
+                        </para></entry>
+                    </row>
+
+                    <row>
+                        <entry><code>getAutoloaders()</code></entry>
+                        <entry><code>array</code></entry>
+                        <entry>N/A</entry>
+                        <entry><para>
+                            Récupère la pile d'autoloaders interne.
+                        </para></entry>
+                    </row>
+
+                    <row>
+                        <entry><code>getNamespaceAutoloaders($namespace)</code></entry>
+                        <entry><code>array</code></entry>
+                        <entry><itemizedlist>
+                            <listitem><para>
+                                <code>$namespace</code>, <emphasis>requis</emphasis>
+                            </para></listitem>
+                        </itemizedlist></entry>
+                        <entry><para>
+                            Récupère tous les autoloaders qui sont associés à un certain
+                            espace de noms.
+                        </para></entry>
+                    </row>
+
+                    <row>
+                        <entry><code>registerNamespace($namespace)</code></entry>
+                        <entry><classname>Zend_Loader_Autoloader</classname></entry>
+                        <entry><itemizedlist>
+                            <listitem><para>
+                                <code>$namespace</code>, <emphasis>requis</emphasis>.
+                            </para></listitem>
+                        </itemizedlist></entry>
+                        <entry><para>
+                            Enregistre un ou plusieurs espaces de noms, avec l'autoloader
+                            par défaut. Si <code>$namespace</code> est une chaine, c'est cet
+                            espace de noms qui sera enregistré, si c'est un tableau de chaines,
+                            ils le seront tous.
+                        </para></entry>
+                    </row>
+
+                    <row>
+                        <entry><code>unregisterNamespace($namespace)</code></entry>
+                        <entry><classname>Zend_Loader_Autoloader</classname></entry>
+                        <entry><itemizedlist>
+                            <listitem><para>
+                                <code>$namespace</code>, <emphasis>requis</emphasis>.
+                            </para></listitem>
+                        </itemizedlist></entry>
+                        <entry><para>
+                            Désenregistre (supprime) un espace de noms depuis l'autoloader
+                            par défaut. Si <code>$namespace</code> est une chaine, c'est cet
+                            espace de noms qui sera désenregistré, si c'est un tableau de chaines,
+                            ils le seront tous.
+                        </para></entry>
+                    </row>
+
+                    <row>
+                        <entry><code>getRegisteredNamespace()</code></entry>
+                        <entry><code>array</code></entry>
+                        <entry>N/A</entry>
+                        <entry><para>
+                            Retourne un tableau comportant tous les espaces de noms enregistrés
+                            avec l'autoloader par défaut.
+                        </para></entry>
+                    </row>
+
+                    <row>
+                        <entry><code>suppressNotFoundWarnings($flag = null)</code></entry>
+                        <entry><code>boolean|Zend_Loader_Autoloader</code></entry>
+                        <entry><itemizedlist>
+                            <listitem><para>
+                                <code>$flag</code>, <emphasis>optionnel</emphasis>.
+                            </para></listitem>
+                        </itemizedlist></entry>
+                        <entry><para>
+                            Affecte ou récupère la valeur du paramètre indiquant si l'autoloader
+                            par défaut doit supprimer les warnings "file not found". Si aucun argument
+                            (ou null) lui est passé, il retourne sa valeur actuelle, dans le cas contraire,
+                            il retournera l'instance de l'autoloader permettant le chainage des méthodes.
+                        </para></entry>
+                    </row>
+
+                    <row>
+                        <entry><code>setFallbackAutoloader($flag)</code></entry>
+                        <entry><classname>Zend_Loader_Autoloader</classname></entry>
+                        <entry><itemizedlist>
+                            <listitem><para>
+                                <code>$flag</code>, <emphasis>requis</emphasis>.
+                            </para></listitem>
+                        </itemizedlist></entry>
+                        <entry><para>
+                            Affecte la valeur du drapeau utilisé pour déterminer si l'autoloader par défaut
+                            doit être utilisé comme "catch-all" pour charger tous les espaces de noms.
+                        </para></entry>
+                    </row>
+
+                    <row>
+                        <entry><code>isFallbackAutoloader()</code></entry>
+                        <entry><code>boolean</code></entry>
+                        <entry>N/A</entry>
+                        <entry><para>
+                            Retourne la valeur du drapeau utilisé pour déterminer si l'autoloader par défaut
+                            doit être utilisé comme "catch-all" pour charger tous les espaces de noms.
+                        </para></entry>
+                    </row>
+
+                    <row>
+                        <entry><code>getClassAutoloaders($class)</code></entry>
+                        <entry><code>array</code></entry>
+                        <entry><itemizedlist>
+                            <listitem><para>
+                                <code>$class</code>, <emphasis>requis</emphasis>.
+                            </para></listitem>
+                        </itemizedlist></entry>
+                        <entry><para>
+                            Retourne une liste d'autoloaders d'espaces de noms qui pourraient
+                            correspondre à la classe indiquée. Si aucun ne correspond, la liste de
+                            tous les autoloaders globaux (non associés à des espaces de noms) sera
+                            retournée.
+                        </para></entry>
+                    </row>
+
+                    <row>
+                        <entry><code>unshiftAutoloader($callback, $namespace = '')</code></entry>
+                        <entry><classname>Zend_Loader_Autoloader</classname></entry>
+                        <entry><itemizedlist>
+                            <listitem><para>
+                                <code>$callback</code>, <emphasis>requis</emphasis>.
+                                Une fonction PHP valide.
+                            </para></listitem>
+
+                            <listitem><para>
+                                <code>$namespace</code>, <emphasis>optionnel</emphasis>.
+                                Une chaine représentant un préfixe de classe.
+                            </para></listitem>
+                        </itemizedlist></entry>
+                        <entry><para>
+                            Ajoute un autoloader au début de la pile des autoloaders internes.
+                            Si un espace de noms est fourni, il sera utilisé pour cet autoloader,
+                            sinon l'autoloader sera global.
+                        </para></entry>
+                    </row>
+
+                    <row>
+                        <entry><code>pushAutoloader($callback, $namespace = '')</code></entry>
+                        <entry><classname>Zend_Loader_Autoloader</classname></entry>
+                        <entry><itemizedlist>
+                            <listitem><para>
+                                <code>$callback</code>, <emphasis>requis</emphasis>.
+                                Une fonction PHP valide.
+                            </para></listitem>
+
+                            <listitem><para>
+                                <code>$namespace</code>, <emphasis>optionnel</emphasis>.
+                                Une chaine représentant un préfixe de classe.
+                            </para></listitem>
+                        </itemizedlist></entry>
+                        <entry><para>
+                            Ajoute un autoloader à la fin de la pile des autoloaders internes.
+                            Si un espace de noms est fourni, il sera utilisé pour cet autoloader,
+                            sinon l'autoloader sera global.
+                        </para></entry>
+                    </row>
+
+                    <row>
+                        <entry><code>removeAutoloader($callback, $namespace = '')</code></entry>
+                        <entry><classname>Zend_Loader_Autoloader</classname></entry>
+                        <entry><itemizedlist>
+                            <listitem><para>
+                                <code>$callback</code>, <emphasis>required</emphasis>.
+                                Une fonction PHP valide.
+                            </para></listitem>
+
+                            <listitem><para>
+                                <code>$namespace</code>, <emphasis>optional</emphasis>.
+                                Une chaine représentant un préfixe de classe, ou un tableau
+                                de chaines.
+                            </para></listitem>
+                        </itemizedlist></entry>
+                        <entry><para>
+                            Supprime un autoloader de la pile interne. Si un espace de noms
+                            est indiqué, supprime l'autoloader pour cet espace de noms uniquement.
+                        </para></entry>
+                    </row>
+                </tbody>
+            </tgroup>
+        </table>
+    </sect2>
+</sect1>

+ 56 - 0
documentation/manual/fr/module_specs/Zend_View-Migration.xml

@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect1 id="zend.view.migration">
+    <title>Migration depuis les versions précédentes</title>
+
+    <para>
+        Ce chapitre explique les cassures de compatibilités dans
+        Zend_View, et devrait servir de guide de migration pour ce composant.
+    </para>
+
+    <sect2 id="zend.view.migration.zf5748">
+        <title>Migrer depuis des versions inférieures à 1.7.5</title>
+
+        <para>
+            Avant la version 1.7.5, l'équipe de Zend Framework a été avertie d'une faille
+            potencielle d'inclusion de fichier local ("Local File Inclusion" (LFI)) dans la méthode
+            <classname>Zend_View::render()</classname>. Avant 1.7.5, la méthode acceptait par défaut
+            la possibilité de spécifier des scripts de vue comportant des indications de dossier
+            parent (comme, "../" ou "..\"). Ceci ouvre la possibilité à une attaque LFI si des données
+            utilisateurs non filtrées sont passées directement à la méthode <code>render()</code>:
+        </para>
+
+        <programlisting role="php"><![CDATA[
+// Ici, $_GET['foobar'] = '../../../../etc/passwd'
+echo $view->render($_GET['foobar']); // inclusion LFI
+]]></programlisting>
+
+        <para>
+            <classname>Zend_View</classname> emet maintenant une exception dans un tel cas.
+        </para>
+
+        <sect3 id="zend.view.migration.zf5748.disabling">
+            <title>Désactiver la protection LFI de render()</title>
+
+            <para>
+                Comme des développeurs utilisaient de telles notations, mais qui n'étaient
+                <emphasis>pas</emphasis> des données en provenance de l'extérieur, un drapeau
+                spécial a été crée, il permet de désactiver la protection. Pour manipuler ce
+                drapeau, il existe 2 moyens : le paramètre 'lfiProtectionOn' du constructeur de
+                votre vue, ou encore la méthode <code>setLfiProtection()</code>.
+            </para>
+
+            <programlisting role="php"><![CDATA[
+// Désactivation de la protection par le constructeur
+$view = new Zend_View(array('lfiProtectionOn' => false));
+
+// Désactivation de la protection par la méthode dédiée
+$view = new Zend_View();
+$view->setLfiProtection(false);
+]]></programlisting>
+        </sect3>
+    </sect2>
+</sect1>
+<!--
+vim:se ts=4 sw=4 et:
+-->