[ZF-10089] Zend_Log
[zend.git] / documentation / manual / fr / module_specs / Zend_Application-CoreFunctionality-Resource_ResourceAbstract.xml
blob4189135e6f491f6cf70fa8fec07a0f5da5c820ff
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- EN-Revision: 20763 -->
3 <!-- Reviewed: no -->
4 <sect2 id="zend.application.core-functionality.resource-resourceabstract">
5     <title>Zend_Application_Resource_ResourceAbstract</title>
7     <para>
8         <classname>Zend_Application_Resource_ResourceAbstract</classname> est une classe abstaite
9         implementant <link
10             linkend="zend.application.core-functionality.resource-resource">Zend_Application_Resource_Resource</link>,
11         c'est un bon point de départ pour créer vos propres plugins de ressources.
12     </para>
14     <para>
15         Note: Cette classe abstraite n'implémente pas la méthode <methodname>init()</methodname>;
16         elle doit donc être implémentée par les extensions concrêtes de cette classe.
17     </para>
19     <table id="zend.application.core-functionality.resource-resourceabstract.api">
20         <title>Méthodes de Zend_Application_Resource_ResourceAbstract</title>
21         <tgroup cols="4">
22             <thead>
23                 <row>
24                     <entry>Méthode</entry>
25                     <entry>Valeur de retour</entry>
26                     <entry>Paramètres</entry>
27                     <entry>Description</entry>
28                 </row>
29             </thead>
30             <tbody>
31                 <row>
32                     <entry><methodname>__construct($options = null)</methodname></entry>
33                     <entry><type>Void</type></entry>
34                     <entry><itemizedlist>
35                         <listitem><para>
36                             <varname>$options</varname>: <emphasis>optionnel</emphasis>.
37                             Options de configuration de la ressource.
38                         </para></listitem>
39                     </itemizedlist></entry>
40                     <entry><para>
41                         Le constructeur doit accepter un paramètres permettant de définir l'état
42                         de la ressource.
43                     </para></entry>
44                 </row>
46                 <row>
47                     <entry>
48                         <methodname>setBootstrap(Zend_Application_Bootstrap_Bootstrapper
49                             $bootstrap)</methodname>
50                     </entry>
51                     <entry><classname>Zend_Application_Resource_ResourceAbstract</classname></entry>
52                     <entry><itemizedlist>
53                             <listitem><para>
54                                 <varname>$bootstrap</varname>&#160;: <emphasis>requis</emphasis>.
55                                 Bootstrap parent initialisant cette resource.
56                             </para></listitem>
57                     </itemizedlist></entry>
58                     <entry><para>
59                         Doit accepter l'enregistrement du bootstrap parent.
60                     </para></entry>
61                 </row>
63                 <row>
64                     <entry><methodname>getBootstrap()</methodname></entry>
65                     <entry><classname>Zend_Application_Bootstrap_Bootstrapper</classname></entry>
66                     <entry>N/A</entry>
67                     <entry><para>
68                         Récupère l'objet bootstrap enregistré.
69                     </para></entry>
70                 </row>
72                 <row>
73                     <entry><methodname>setOptions(array $options)</methodname></entry>
74                     <entry><classname>Zend_Application_Resource_ResourceAbstract</classname></entry>
75                     <entry><itemizedlist>
76                         <listitem><para>
77                             <varname>$options</varname>&#160;: <emphasis>required</emphasis>.
78                             Options de la ressource.
79                         </para></listitem>
80                     </itemizedlist></entry>
81                     <entry><para>Définit l'état de la ressource.</para></entry>
82                 </row>
84                 <row>
85                     <entry><methodname>getOptions()</methodname></entry>
86                     <entry><type>Array</type></entry>
87                     <entry>N/A</entry>
88                     <entry><para>Retourne les options enregistrées.</para></entry>
89                 </row>
90             </tbody>
91         </tgroup>
92     </table>
94     <sect3 id="zend.application.core-functionality.resource-resourceabstract.names">
95         <title>Noms des resources</title>
97         <para>
98             Lorque vous enregistrez des plugins de ressources, il existe alors 3 manières d'y faire
99             référence dans la classe du bootstrap parent, en fonction de la manière dont vous avez
100             configuré le bootstrap.
101         </para>
103         <para>
104             D'abord, si vos classes de plugins existent dans un chemin précis, vous pouvez alors y
105             faire référence simplement par leur nom court -- la portion du nom de la classe située
106             après le préfixe de classe. Par exemple, la classe
107             "<classname>Zend_Application_Resource_View</classname>" peut être référencée simplement
108             via "View" car le préfixe "<classname>Zend_Application_Resource</classname>"
109             est déja enregistré. Vous pouvez aussi utiliser le nom long de classe complet&#160;:
110         </para>
112         <programlisting language="php"><![CDATA[
113 $app = new Zend_Application(APPLICATION_ENV, array(
114     'pluginPaths' => array(
115         'My_Resource' => 'My/Resource/',
116     ),
117     'resources' => array(
118         // Si la classe suivante existe:
119         'My_Resource_View' => array(),
121         // alors ceci est équivalent:
122         'View' => array(),
123     ),
125 ]]></programlisting>
127         <para>
128             Quoiqu'il en soit, vous pouvez lancer (bootstrap) la ressource ou la récupérer via son
129             nom court:
130         </para>
132         <programlisting language="php"><![CDATA[
133 $bootstrap->bootstrap('view');
134 $view = $bootstrap->getResource('view');
135 ]]></programlisting>
137         <para>
138             Ensuite, si aucun chemin précis n'est enregistré, il reste possible de passer ses
139             plugins de ressources via leur nom de classe complet&#160;:
140         </para>
142         <programlisting language="php"><![CDATA[
143 $app = new Zend_Application(APPLICATION_ENV, array(
144     'resources' => array(
145         // Ceci va charger le plugin de ressource standard 'View':
146         'View' => array(),
148         // Alors que ceci charge une classe spécifiquement via son nom:
149         'My_Resource_View' => array(),
150     ),
152 ]]></programlisting>
154         <para>
155             La récupération de ces objets se fait alors de manière plus clarifiée&#160;:
156         </para>
158         <programlisting language="php"><![CDATA[
159 $bootstrap->bootstrap('My_Resource_View');
160 $view = $bootstrap->getResource('My_Resource_View');
161 ]]></programlisting>
163         <para>
164             La troisième méthode découle des deux précédentes. Il est possible de donner un nom
165             court à n'importe quelle classe. Ajoutez une variable publique
166             <varname>$_explicitType</varname> dans la classe du plugin, sa valeur sera alors
167             utilisée comme nom court pour référencer le plugin dans le bootstrap. Définissons
168             par exemple notre propre vue&#160;:
169         </para>
171         <programlisting language="php"><![CDATA[
172 class My_Resource_View extends Zend_Application_Resource_ResourceAbstract
174     public $_explicitType = 'My_View';
176     public function init()
177     {
178         // du code ici...
179     }
181 ]]></programlisting>
183         <para>
184             Nous pouvons dès lors lancer cette ressource (bootstrap) ou la récupérer via le nom
185             "<classname>My_View</classname>":
186         </para>
188         <programlisting language="php"><![CDATA[
189 $bootstrap->bootstrap('My_View');
190 $view = $bootstrap->getResource('My_View');
191 ]]></programlisting>
193         <para>
194             Grâce à ses différentes manières de faire, vous pouvez redéfinir des plugins existants,
195             en ajouter ou encore les mixer pour accomplir des tâches d'initialisation complexes.
196         </para>
197     </sect3>
198 </sect2>