Zend_Navigation-Pages-Factory.xml 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 14978 -->
  3. <!-- Reviewed: no -->
  4. <sect2 id="zend.navigation.pages.factory">
  5. <title>Erstellen von Seiten durch Verwendung der Page Factory</title>
  6. <para>
  7. Alle Seiten (also auch eigene Klassen), können durch Verwendung der Page Factory
  8. <classname>Zend_Navigation_Page::factory()</classname> erstellt werden. Die Factory kann ein Array
  9. mit Optionen oder ein <classname>Zend_Config</classname> Objekt annehmen. Jeder Schlüssel
  10. im Array/Config entspricht einer Seiten Option, wie im Kapitel
  11. <link linkend="zend.navigation.pages">Seiten</link> gezeigt. Wenn die Option
  12. <code>uri</code> angegeben wird und keine MVC Optionen angegeben werden (<code>action,
  13. controller, module, route</code>) wird eine URI Seite erstellt. Wenn eine der MVC Optionen
  14. angegeben wird, dann wird eine MVC Seite erstellt.
  15. </para>
  16. <para>
  17. Wenn <code>type</code> angegeben wird, nimmt die Factory an das der Wert der Name der
  18. Klasse ist die erstellt werden soll. Wenn der Wert <code>mvc</code> oder <code>uri</code>
  19. ist wird eine MVC/URI Seite erstellt.
  20. </para>
  21. <example id="zend.navigation.pages.factory.example.mvc">
  22. <title>Erstellen einer MVC Seite durch Verwenden der Page Factory</title>
  23. <programlisting role="php"><![CDATA[
  24. $page = Zend_Navigation_Page::factory(array(
  25. 'label' => 'My MVC page',
  26. 'action' => 'index'
  27. ));
  28. $page = Zend_Navigation_Page::factory(array(
  29. 'label' => 'Search blog',
  30. 'action' => 'index',
  31. 'controller' => 'search',
  32. 'module' => 'blog'
  33. ));
  34. $page = Zend_Navigation_Page::factory(array(
  35. 'label' => 'Home',
  36. 'action' => 'index',
  37. 'controller' => 'index',
  38. 'module' => 'index',
  39. 'route' => 'home'
  40. ));
  41. $page = Zend_Navigation_Page::factory(array(
  42. 'type' => 'mvc',
  43. 'label' => 'My MVC page'
  44. ));
  45. ]]>
  46. </programlisting>
  47. </example>
  48. <example id="zend.navigation.pages.factory.example.uri">
  49. <title>Erstellen einer URI Seite durch Verwendung der Page Factory</title>
  50. <programlisting role="php"><![CDATA[
  51. $page = Zend_Navigation_Page::factory(array(
  52. 'label' => 'My URI page',
  53. 'uri' => 'http://www.example.com/'
  54. ));
  55. $page = Zend_Navigation_Page::factory(array(
  56. 'label' => 'Search',
  57. 'uri' => 'http://www.example.com/search',
  58. 'active' => true
  59. ));
  60. $page = Zend_Navigation_Page::factory(array(
  61. 'label' => 'My URI page',
  62. 'uri' => '#'
  63. ));
  64. $page = Zend_Navigation_Page::factory(array(
  65. 'type' => 'uri',
  66. 'label' => 'My URI page'
  67. ));
  68. ]]>
  69. </programlisting>
  70. </example>
  71. <example id="zend.navigation.pages.factory.example.custom">
  72. <title>Erstellung eines eigenen Seiten Typs durch Verwendung der Page Factory</title>
  73. <para>
  74. Um einen eigenen Seitentyp zu erstellen mit Hilfe der Verwendung der Factory, muß die
  75. Option <code>type</code> verwendet werden um den Klassennamen zu spezifizieren der
  76. instanziiert werden muß.
  77. </para>
  78. <programlisting role="php"><![CDATA[
  79. class My_Navigation_Page extends Zend_Navigation_Page
  80. {
  81. protected $_fooBar = 'ok';
  82. public function setFooBar($fooBar)
  83. {
  84. $this->_fooBar = $fooBar;
  85. }
  86. }
  87. $page = Zend_Navigation_Page::factory(array(
  88. 'type' => 'My_Navigation_Page',
  89. 'label' => 'My custom page',
  90. 'foo_bar' => 'foo bar'
  91. ));
  92. ]]>
  93. </programlisting>
  94. </example>
  95. </sect2>