Added some french doc for tutorials
[zend/radio.git] / documentation / manual / fr / tutorials / autoloading-resources.xml
blobc005ea443169524088f513c5d8ddac4371432655
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- EN-Revision: 20573 -->
3 <!-- Reviewed: no -->
4 <sect1 id="learning.autoloading.resources">
5     <title>Auto-chargement de resources</title>
7     <para>
8         En développant des applications, il est souvent difficile de regrouper certaines classes
9         dans une relation 1:1 avec le système de fichiers que recommande le Zend framework, ou alors
10         ça ne semble pas intuitif de le faire. Cela signifie que les classes ne seront pas trouvées
11         par l'autoloader.
12     </para>
14     <para>
15         Si vous lisez <link linkend="learning.autoloading.design">les caractéristiques de l'architecture
16         </link> de l'autoloader, le dernier point de cette section indique qu'une solution existe pour
17         un tel problème. Zend Framework utilise alors <classname>Zend_Loader_Autoloader_Resource
18         </classname>.
19     </para>
21     <para>
22         Une ressource est juste un nom qui correspond à un espace de noms pour un composant
23         (qui est ajouté à l'espace de noms de l'autoloader) et un chemin (qui est relatif au
24         chemin de base de l'autoloader). Sous forme de code, vous feriez quelque chose comme:
25     </para>
27     <programlisting language="php"><![CDATA[
28 $loader = new Zend_Application_Module_Autoloader(array(
29     'namespace' => 'Blog',
30     'basePath'  => APPLICATION_PATH . '/modules/blog',
31 ));
32 ]]></programlisting>
34     <para>
35         Une fois le chargeur en place, il faut l'informer des différents types de ressources
36         qu'il va avoir à gérer. Ces types sont simplement des paires d'arbres et de préfixes.
37     </para>
39     <para>
40         Considérons ce qui suit comme exemple:
41     </para>
43     <programlisting language="text"><![CDATA[
44 path/to/some/resources/
45 |-- forms/
46 |   `-- Guestbook.php        // Foo_Form_Guestbook
47 |-- models/
48 |   |-- DbTable/
49 |   |   `-- Guestbook.php    // Foo_Model_DbTable_Guestbook
50 |   |-- Guestbook.php        // Foo_Model_Guestbook
51 |   `-- GuestbookMapper.php  // Foo_Model_GuestbookMapper
52 ]]></programlisting>
54     <para>
55         Le premier reflexe est de créer un chargeur de ressources:
56     </para>
58     <programlisting language="php"><![CDATA[
59 $loader = new Zend_Loader_Autoloader_Resource(array(
60     'basePath'  => 'path/to/some/resources/',
61     'namespace' => 'Foo',
62 ));
63 ]]></programlisting>
65     <para>
66         Puis, nous définissons des types de ressources.
67         <methodname>Zend_Loader_Autoloader_Resourse::addResourceType()</methodname> prend trois
68         arguments: le "type" de resource (une chaine arbitraire), le chemin sous le chemin de base
69         dans lequel le type de ressource doit se trouver, et le préfixe particulier à utiliser pour
70         ce type de ressource. Dans l'arbre représenté ci-dessus, il y a trois types : form
71         (dans le sous-dossier "forms", avec un préfixe "Form"), model (dans le sous-dossier "models",
72         avec un préfixe "Model"), et dbtable (dans le sous-dossier
73         "<filename>models/DbTable</filename>", avec un préfixe "<classname>Model_DbTable</classname>").
74         Nous les définirons comme ceci:
75     </para>
77     <programlisting language="php"><![CDATA[
78 $loader->addResourceType('form', 'forms', 'Form')
79        ->addResourceType('model', 'models', 'Model')
80        ->addResourceType('dbtable', 'models/DbTable', 'Model_DbTable');
81 ]]></programlisting>
83     <para>
84         Il ne reste plus qu'à utiliser les classes:
85     </para>
87     <programlisting language="php"><![CDATA[
88 $form      = new Foo_Form_Guestbook();
89 $guestbook = new Foo_Model_Guestbook();
90 ]]></programlisting>
92     <note>
93         <title>Autoload de ressource Module</title>
95         <para>
96             La couche <acronym>MVC</acronym> de Zend Framework encourage l'utilisation de "modules",
97             qui sont des mini-applications de votre site. Les modules possèdent typiquement des
98             types de ressource par défaut, et Zend Framework
99             <link linkend="project-structure.filesystem">recommande une hiérarchie de répertoires
100             standard pour les modules</link>. Les autoloaders de ressources sont particulièrement
101             adaptés à cette situation -- tellement qu'ils sont activés par défaut lorsque vous créez
102             des classes de bootstrap qui étendent
103             <classname>Zend_Application_Module_Bootstrap</classname>. Pour plus d'informations, lisez
104             la <link
105                 linkend="zend.loader.autoloader-resource.module">documentation de
106                 Zend_Loader_Autoloader_Module</link>.
107         </para>
108     </note>
109 </sect1>