1 <?xml version="1.0" encoding="UTF-8"?>
3 <!-- 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>は
10 linkend="zend.application.core-functionality.resource-resource">Zend_Application_Resource_Resource</link>を
12 独自のカスタム・プラグイン・リソースを作成し始めるために適しています。
16 注意: この抽象クラスは、<methodname>init()</methodname>メソッドを実装しません;
17 クラスを具体的に拡張する定義のために残されます。
20 <table id="zend.application.core-functionality.resource-resourceabstract.api">
21 <title>Zend_Application_Resource_ResourceAbstractメソッド</title>
33 <entry><methodname>__construct($options = null)</methodname></entry>
34 <entry><type>Void</type></entry>
37 <varname>$options</varname>: <emphasis>任意</emphasis>.
40 </itemizedlist></entry>
42 状態を初期化するためのオプションを、コンストラクタに渡すことができなければなりません。
48 <methodname>setBootstrap(Zend_Application_Bootstrap_Bootstrapper
49 $bootstrap)</methodname>
51 <entry><classname>Zend_Application_Resource_ResourceAbstract</classname></entry>
54 <varname>$bootstrap</varname>: <emphasis>必須</emphasis>.
57 </itemizedlist></entry>
59 親ブートストラップ・オブジェクトを登録できるようにしなければいけません。
64 <entry><methodname>getBootstrap()</methodname></entry>
65 <entry><classname>Zend_Application_Bootstrap_Bootstrapper</classname></entry>
68 登録されたブートストラップ・インスタンスを取得します。
73 <entry><methodname>setOptions(array $options)</methodname></entry>
74 <entry><classname>Zend_Application_Resource_ResourceAbstract</classname></entry>
77 <varname>$options</varname>: <emphasis>必須</emphasis>.
80 </itemizedlist></entry>
87 <entry><methodname>getOptions()</methodname></entry>
88 <entry><type>Array</type></entry>
98 <sect3 id="zend.application.core-functionality.resource-resourceabstract.names">
102 プラグイン・リソースを登録するときに起きる問題の一つは、
103 どのように親ブートストラップ・クラスからそれらを参照すべきかということです。
104 利用されるかもしれない3通りの異なる手法があります。
105 そして、ブートストラップとそのプラグイン・リソースを構成した方法によって決まります。
109 最初に、プラグインが定義済みのプレフィックス・パスの中で定義されるなら、
110 それらの「短い名前」 ― すなわち、クラス・プレフィックスの後のクラス名の部分 ―
111 によって単純にそれらを参照するかもしれません。
112 例えば、プレフィックス・パス "<classname>Zend_Application_Resource</classname>" がすでに登録されていたら、
113 クラス "<classname>Zend_Application_Resource_View</classname>" は単純に "View" として参照されるかもしれません。
114 完全なクラス名または短い名前を用いてそれらを登録するかもしれません:
117 <programlisting language="php"><![CDATA[
118 $app = new Zend_Application(APPLICATION_ENV, array(
119 'pluginPaths' => array(
120 'My_Resource' => 'My/Resource/',
122 'resources' => array(
124 'My_Resource_View' => array(),
134 後で短い名前を使って、それを取得できます:
137 <programlisting language="php"><![CDATA[
138 $bootstrap->bootstrap('view');
139 $view = $bootstrap->getResource('view');
143 第2には、マッチするプラグイン・パスが定義されないならば、
144 完全なクラス名によってリソースを今まで通り渡すかもしれません:
147 <programlisting language="php"><![CDATA[
148 $app = new Zend_Application(APPLICATION_ENV, array(
149 'resources' => array(
150 // 標準の 'View' リソースをロードします:
153 // 一方で固有のクラス名でリソースをロードします:
154 'My_Resource_View' => array(),
160 明らかに、リソースの参照がもっと冗長になります:
163 <programlisting language="php"><![CDATA[
164 $bootstrap->bootstrap('My_Resource_View');
165 $view = $bootstrap->getResource('My_Resource_View');
170 与えられたリソースクラスが登録する、明示的な名前を指定できます。
171 これは public <varname>$_explicitType</varname>プロパティを
172 リソース・プラグイン・クラスに文字列値で加えることによって実現されます;
173 その場合、ブートストラップを通してプラグイン・リソースを参照したいときはいつでも、その値が使われます。
174 例えば、独自のビュー・クラスを定義しましょう:
177 <programlisting language="php"><![CDATA[
178 class My_Resource_View extends Zend_Application_Resource_ResourceAbstract
180 public $_explicitType = 'My_View';
182 public function init()
190 We can then bootstrap that resource or retrieve it by the name
191 その場合、そのリソースを起動するか、または名前 "<classname>My_View</classname>" によって
195 <programlisting language="php"><![CDATA[
196 $bootstrap->bootstrap('My_View');
197 $view = $bootstrap->getResource('My_View');
201 これらのいろいろな命名方法を使用して、既存のリソースをオーバーライドできます。
203 独自のものを追加したり、複数のリソースを混ぜたりすることなどができます。