1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- EN-Revision: 20763 -->
4 <sect2 id="zend.application.core-functionality.resource-resourceabstract">
5 <title>Zend_Application_Resource_ResourceAbstract</title>
8 <classname>Zend_Application_Resource_ResourceAbstract</classname> est une classe abstaite
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.
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.
19 <table id="zend.application.core-functionality.resource-resourceabstract.api">
20 <title>Méthodes de Zend_Application_Resource_ResourceAbstract</title>
24 <entry>Méthode</entry>
25 <entry>Valeur de retour</entry>
26 <entry>Paramètres</entry>
27 <entry>Description</entry>
32 <entry><methodname>__construct($options = null)</methodname></entry>
33 <entry><type>Void</type></entry>
36 <varname>$options</varname>: <emphasis>optionnel</emphasis>.
37 Options de configuration de la ressource.
39 </itemizedlist></entry>
41 Le constructeur doit accepter un paramètres permettant de définir l'état
48 <methodname>setBootstrap(Zend_Application_Bootstrap_Bootstrapper
49 $bootstrap)</methodname>
51 <entry><classname>Zend_Application_Resource_ResourceAbstract</classname></entry>
54 <varname>$bootstrap</varname> : <emphasis>requis</emphasis>.
55 Bootstrap parent initialisant cette resource.
57 </itemizedlist></entry>
59 Doit accepter l'enregistrement du bootstrap parent.
64 <entry><methodname>getBootstrap()</methodname></entry>
65 <entry><classname>Zend_Application_Bootstrap_Bootstrapper</classname></entry>
68 Récupère l'objet bootstrap enregistré.
73 <entry><methodname>setOptions(array $options)</methodname></entry>
74 <entry><classname>Zend_Application_Resource_ResourceAbstract</classname></entry>
77 <varname>$options</varname> : <emphasis>required</emphasis>.
78 Options de la ressource.
80 </itemizedlist></entry>
81 <entry><para>Définit l'état de la ressource.</para></entry>
85 <entry><methodname>getOptions()</methodname></entry>
86 <entry><type>Array</type></entry>
88 <entry><para>Retourne les options enregistrées.</para></entry>
94 <sect3 id="zend.application.core-functionality.resource-resourceabstract.names">
95 <title>Noms des resources</title>
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.
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 :
112 <programlisting language="php"><![CDATA[
113 $app = new Zend_Application(APPLICATION_ENV, array(
114 'pluginPaths' => array(
115 'My_Resource' => 'My/Resource/',
117 'resources' => array(
118 // Si la classe suivante existe:
119 'My_Resource_View' => array(),
121 // alors ceci est équivalent:
128 Quoiqu'il en soit, vous pouvez lancer (bootstrap) la ressource ou la récupérer via son
132 <programlisting language="php"><![CDATA[
133 $bootstrap->bootstrap('view');
134 $view = $bootstrap->getResource('view');
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 :
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':
148 // Alors que ceci charge une classe spécifiquement via son nom:
149 'My_Resource_View' => array(),
155 La récupération de ces objets se fait alors de manière plus clarifiée :
158 <programlisting language="php"><![CDATA[
159 $bootstrap->bootstrap('My_Resource_View');
160 $view = $bootstrap->getResource('My_Resource_View');
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 :
171 <programlisting language="php"><![CDATA[
172 class My_Resource_View extends Zend_Application_Resource_ResourceAbstract
174 public $_explicitType = 'My_View';
176 public function init()
184 Nous pouvons dès lors lancer cette ressource (bootstrap) ou la récupérer via le nom
185 "<classname>My_View</classname>":
188 <programlisting language="php"><![CDATA[
189 $bootstrap->bootstrap('My_View');
190 $view = $bootstrap->getResource('My_View');
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.