1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect2 id="zend.navigation.pages.factory">
<title>Erstellen von Seiten durch Verwendung der Page Factory</title>
<para>
Alle Seiten (also auch eigene Klassen), können durch Verwendung der Page Factory
<methodname>Zend_Navigation_Page::factory()</methodname> erstellt werden. Die Factory kann
ein Array mit Optionen oder ein <classname>Zend_Config</classname> Objekt annehmen. Jeder
Schlüssel im Array/Config entspricht einer Seiten Option, wie im Kapitel
<link linkend="zend.navigation.pages">Seiten</link> gezeigt. Wenn die Option
<code>uri</code> angegeben wird und keine <acronym>MVC</acronym> Optionen angegeben werden
(<code>action, controller, module, route</code>) wird eine <acronym>URI</acronym> Seite
erstellt. Wenn eine der <acronym>MVC</acronym> Optionen angegeben wird, dann wird eine
<acronym>MVC</acronym> Seite erstellt.
</para>
<para>
Wenn <code>type</code> angegeben wird, nimmt die Factory an das der Wert der Name der
Klasse ist die erstellt werden soll. Wenn der Wert <code>mvc</code> oder <code>uri</code>
ist wird eine MVC/URI Seite erstellt.
</para>
<example id="zend.navigation.pages.factory.example.mvc">
<title>Erstellen einer MVC Seite durch Verwenden der Page Factory</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>Erstellen einer URI Seite durch Verwendung der Page Factory</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>Erstellung eines eigenen Seiten Typs durch Verwendung der Page Factory</title>
<para>
Um einen eigenen Seitentyp zu erstellen mit Hilfe der Verwendung der Factory, muß die
Option <code>type</code> verwendet werden um den Klassennamen zu spezifizieren der
instanziiert werden muß.
</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>
|