File: Zend_Navigation-Pages-Factory.xml

package info (click to toggle)
zendframework 1.12.9%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 133,584 kB
  • sloc: xml: 1,311,829; php: 570,173; sh: 170; makefile: 125; sql: 121
file content (110 lines) | stat: -rw-r--r-- 3,626 bytes parent folder | download | duplicates (2)
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>