| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Reviewed: no -->
- <!-- EN-Revision: 24249 -->
- <sect2 id="zend.navigation.pages.factory">
- <title>ページ・ファクトリを使ってページを作成</title>
- <para>
- すべてのページ(また、カスタマイズしたクラス)を、
- ページ・ファクトリ <methodname>Zend_Navigation_Page::factory()</methodname> を用いて
- 作成できます。
- ファクトリは任意の配列、
- または<classname>Zend_Config</classname>オブジェクトをとることができます。
- <link linkend="zend.navigation.pages">ページ</link>の節でご覧いただけるように、
- 配列または構成の各々のキーはページ・オプションと一致します。
- <code>uri</code>が与えられ、<acronym>MVC</acronym>オプション
- (<code>action, controller, module, route</code>)
- が与えられないなら、
- <acronym>URI</acronym>ページが作成されます。
- <acronym>MVC</acronym>オプションのいずれかが与えられると、
- <acronym>MVC</acronym>ページが作成されます。
- </para>
- <para>
- <code>type</code>が与えられると、
- ファクトリは、その値が作成されるべきであるクラスの名前であると仮定します。
- もし、値が <code>mvc</code> または <code>uri</code> ならば、
- <acronym>MVC</acronym>/URI 画面が作成されます。
- </para>
- <example id="zend.navigation.pages.factory.example.mvc">
- <title>ページ・ファクトリを使ってMVCページを作成</title>
- <programlisting language="php"><![CDATA[
- $page = Zend_Navigation_Page::factory(array(
- 'label' => 'My MVC page',
- 'action' => 'index'
- ));
- $page = Zend_Navigation_Page::factory(array(
- 'label' => 'Search blog',
- 'action' => 'index',
- 'controller' => 'search',
- 'module' => 'blog'
- ));
- $page = Zend_Navigation_Page::factory(array(
- 'label' => 'Home',
- 'action' => 'index',
- 'controller' => 'index',
- 'module' => 'index',
- 'route' => 'home'
- ));
- $page = Zend_Navigation_Page::factory(array(
- 'type' => 'mvc',
- 'label' => 'My MVC page'
- ));
- ]]></programlisting>
- </example>
- <example id="zend.navigation.pages.factory.example.uri">
- <title>ページ・ファクトリを使ってURIページを作成</title>
- <programlisting language="php"><![CDATA[
- $page = Zend_Navigation_Page::factory(array(
- 'label' => 'My URI page',
- 'uri' => 'http://www.example.com/'
- ));
- $page = Zend_Navigation_Page::factory(array(
- 'label' => 'Search',
- 'uri' => 'http://www.example.com/search',
- 'active' => true
- ));
- $page = Zend_Navigation_Page::factory(array(
- 'label' => 'My URI page',
- 'uri' => '#'
- ));
- $page = Zend_Navigation_Page::factory(array(
- 'type' => 'uri',
- 'label' => 'My URI page'
- ));
- ]]></programlisting>
- </example>
- <example id="zend.navigation.pages.factory.example.custom">
- <title>ページ・ファクトリを使ってカスタムページ型を作成</title>
- <para>
- ページ・ファクトリを使ってカスタムページ型を作成するには、
- インスタンス化するクラス名を指定するために、
- <code>type</code>オプションを使ってください。
- </para>
- <programlisting language="php"><![CDATA[
- class My_Navigation_Page extends Zend_Navigation_Page
- {
- protected $_fooBar = 'ok';
- public function setFooBar($fooBar)
- {
- $this->_fooBar = $fooBar;
- }
- }
- $page = Zend_Navigation_Page::factory(array(
- 'type' => 'My_Navigation_Page',
- 'label' => 'My custom page',
- 'foo_bar' => 'foo bar'
- ));
- ]]></programlisting>
- </example>
- </sect2>
|