Browse Source

[DOCUMENTATION] Japanese:new Zend_Application Example

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@16907 44c647ce-9c0f-0410-b52a-842ac1e357ba
yoshida@zend.co.jp 16 years ago
parent
commit
7fa1de86d5
1 changed files with 237 additions and 0 deletions
  1. 237 0
      documentation/manual/ja/module_specs/Zend_Application-Examples.xml

+ 237 - 0
documentation/manual/ja/module_specs/Zend_Application-Examples.xml

@@ -0,0 +1,237 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<!-- EN-Revision: 15823 -->
+<sect1 id="zend.application.examples">
+    <title>例</title>
+
+    <para>
+        ブートストラップ・クラスそのものは、一般的にかなりごく小さいものです;
+        しばしば、それは基底ブートストラップ・クラスを拡張している中身がない単純なスタブです:
+    </para>
+
+    <programlisting language="php"><![CDATA[
+class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
+{
+}
+]]></programlisting>
+
+    <para>
+        対応する構成ファイルを伴います:
+    </para>
+
+    <programlisting language="ini"><![CDATA[
+; APPLICATION_PATH/configs/application.ini
+[production]
+bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
+bootstrap.class = "Bootstrap"
+resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
+
+[development : testing]
+[development : production]
+]]></programlisting>
+
+    <para>
+        しかし、カスタマイズした初期化が必要ならば、2つの選択肢ががあります。
+        最初に、ブートストラップに個別のコードを指定するために
+        <emphasis>_init</emphasis>で前に置かれるメソッドを書くことができます。
+        これらのメソッドは<methodname>bootstrap()</methodname>によって呼ばれて、
+        まるでそれらが public メソッドであるように呼ばれることもできます:
+        <emphasis>bootstrap&lt;resource&gt;()</emphasis>
+        それらは、任意のオプション配列を受け取るべきです。
+    </para>
+
+    <para>
+        リソース・メソッドが値を返すならば、それはブートストラップでコンテナに保存されます。
+        異なるリソースが相互に作用する必要があるとき、
+        (例えば、別のリソースにそれ自体を注入している1つのリソース)
+        これは役に立つことがあります。
+        その場合、メソッド<methodname>getResource()</methodname>は、
+        それらの値を取得するために使うことができます。
+    </para>
+
+    <para>
+        下記の例では、リクエスト・オブジェクトを初期化するためのリソース・メソッドを示します。
+        それは、トラッキング(フロントコントローラ・リソースに依存します)、
+        ブートストラップからのリソース取得、
+        ブートストラップに保存する値の返却することの依存性を利用します。
+    </para>
+
+    <programlisting language="php"><![CDATA[
+class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
+{
+    protected function _initRequest(array $options = array())
+    {
+        // フロントコントローラ・インスタンスが存在することを確認して、取り込みます。
+        $this->bootstrap('FrontController');
+        $front = $this->getResource('FrontController');
+
+        // リクエストオブジェクトの初期化
+        $request = new Zend_Controller_Request_Http();
+        $request->setBaseUrl('/foo');
+
+        // フロントコントローラに追加
+        $front->setRequest($request);
+
+        // この値をブートストラップでコンテナの 'request' キーに保存します。
+        return $request;
+    }
+}
+]]></programlisting>
+
+    <para>
+        この例で、<methodname>bootstrap()</methodname>を呼び出すことに注意してください;
+        フロントコントローラがこのメソッドを呼ぶ前に初期化されることを確実にします。
+        その呼び出しは、クラスのリソースまたは別のメソッドいずれかの引き金となるかもしれません。
+    </para>
+
+    <para>
+        リソース・プラグインは、特定の初期化を実行するオブジェクトで、
+        それは指定されるかもしれません:
+    </para>
+
+    <itemizedlist>
+        <listitem>
+            <para>
+                <classname>Zend_Application</classname>オブジェクトが初期化されるとき
+            </para>
+        </listitem>
+        <listitem>
+            <para>
+                ブートストラップオブジェクトの初期化中
+            </para>
+        </listitem>
+        <listitem>
+            <para>
+                メソッド呼び出しを介してそれらをブートストラップ・オブジェクトで明示的に使用可能にすることによって
+            </para>
+        </listitem>
+    </itemizedlist>
+
+    <para>
+        呼出し元とオプションを注入でき、
+        <methodname>init()</methodname>メソッドをもつことを
+        簡単に明確にする
+        <classname>Zend_Application_Bootstrap_Resource</classname>を
+        リソース・プラグインでは実装します。
+        例えば、カスタマイズした "View" ブートストラップ・リソースは、
+        以下のように見えるかもしれません:
+    </para>
+
+    <programlisting language="php"><![CDATA[
+class My_Bootstrap_Resource_View
+    extends Zend_Application_Resource_ResourceAbstract
+{
+    public function init()
+    {
+        $view = new Zend_View($this->getOptions());
+        Zend_Dojo::enableView($view);
+
+        $view->doctype('XHTML1_STRICT');
+        $view->headTitle()->setSeparator(' - ')->append('My Site');
+        $view->headMeta()->appendHttpEquiv('Content-Type',
+                                           'text/html; charset=utf-8');
+
+        $view->dojo()->setDjConfigOption('parseOnLoad', true)
+                     ->setLocalPath('/js/dojo/dojo.js')
+                     ->registerModulePath('../spindle', 'spindle')
+                     ->addStylesheetModule('spindle.themes.spindle')
+                     ->requireModule('spindle.main')
+                     ->disable();
+
+        $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper(
+            'ViewRenderer'
+        );
+        $viewRenderer->setView($view);
+
+        return $view;
+    }
+}
+]]></programlisting>
+
+    <para>
+        これを使うようにブートストラップに命じるために、
+        リソースのクラス名か、
+        またはプラグイン・ローダ・プレフィックス・パスと
+        リソースの短い名前(例えば "view" )の組み合わせを
+        提供する必要があるでしょう:
+    </para>
+
+    <programlisting language="php"><![CDATA[
+$application = new Zend_Application(
+    APPLICATION_ENV,
+    array(
+        'resources' => array(
+            'My_Bootstrap_Resource_View' => array(), // 完全クラス名;
+            'view' => array(),                       // または短い名前
+
+            'FrontController' => array(
+                'controllerDirectory' => APPLICATION_PATH . '/controllers',
+            ),
+        ),
+
+        // 短い名前のためにプラグインパスを定義します:
+        'pluginPaths = array(
+            'My_Bootstrap_Resource' => 'My/Bootstrap/Resource',
+        )
+    )
+);
+]]></programlisting>
+
+    <para>
+        リソースは、親ブートストラップにアクセスすることによって、
+        他のリソースとイニシャライザを呼び出すことができます:
+    </para>
+
+    <programlisting language="php"><![CDATA[
+class My_Bootstrap_Resource_Layout
+    extends Zend_Application_Resource_ResourceAbstract
+{
+    public function init()
+    {
+        // ビューが初期化されたか確認
+        $this->getBootstrap()->bootstrap('view');
+
+        // ビューオブジェクトを取得:
+        $view = $this->getBootstrap()->getResource('view');
+
+        // ...
+    }
+}
+]]></programlisting>
+
+    <para>
+        通常の使用法では、アプリケーションをインスタンス化して、
+        起動して実行するでしょう:
+    </para>
+
+    <programlisting language="php"><![CDATA[
+$application = new Zend_Application(...);
+$application->bootstrap()
+            ->run();
+]]></programlisting>
+
+    <para>
+        カスタマイズしたスクリプトについては、
+        特定のリソースを単純に初期化する必要があるかもしれません:
+    </para>
+
+    <programlisting language="php"><![CDATA[
+$application = new Zend_Application(...);
+$application->getBootstrap()->bootstrap('db');
+
+$service = new Zend_XmlRpc_Server();
+$service->setClass('Foo');  // データベースの利用
+echo $service->handle();
+]]></programlisting>
+
+    <para>
+        内部のメソッドまたはリソースを呼び出す
+        <methodname>bootstrap()</methodname>メソッドを使用する代わりに、
+        オーバーローディングも使うかもしれません:
+    </para>
+
+    <programlisting language="php"><![CDATA[
+$application = new Zend_Application(...);
+$application->getBootstrap()->bootstrapDb();
+]]></programlisting>
+</sect1>