| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- <sect1 id="zend.view.controllers">
- <title>Skrypt kontrolera</title>
- <para>
- Kontroler jest miejscem, w którym tworzysz i konfigurujesz instancję
- Zend_View. Potem przypisujesz do tej instancji zmienne zawierające dane,
- a następnie wybierasz skrypt widoku, który ma być zrenderowany.
- </para>
- <sect2 id="zend.view.controllers.assign">
- <title>Przekazywanie zmiennych</title>
- <para>
- Twój skrypt kontrolera powinien przypisać potrzebne zmienne do
- instancji widoku, zanim przekaże kontrolę do skryptu widoku. Możesz
- to zrobić przypisując zmienne do zmiennych instancji widoku:
- </para>
- <programlisting role="php"><![CDATA[
- $view = new Zend_View();
- $view->a = "Hay";
- $view->b = "Bee";
- $view->c = "Sea";
- ]]>
- </programlisting>
- <para>
- Jednak mogłoby być niewygodnie gdy zmienne, które masz przekazać
- są zebrane w tablicy lub obiekce.
- </para>
- <para>
- Metoda assign() pozwala na automatyczne przypisanie wszystkich
- zmiennych z tablicy lub obiektu. Poniższe przykłady dają taki sam
- efekt jak poprzedni przykład, w którym zmienne były przypisywane
- pojedynczo:
- </para>
- <programlisting role="php"><![CDATA[
- $view = new Zend_View();
- // przypisuje tablicę zmiennych w postaci par
- // klucz-wartość, gdzie klucz jest nazwą przypisanej
- // zmiennej, a wartość jest jej wartościa.
- $array = array(
- 'a' => "Hay",
- 'b' => "Bee",
- 'c' => "Sea",
- );
- $view->assign($array);
- // robi to samo z publicznymi właściwościami
- // obiektu. zauważ jak rzutujemy obiekt na
- // tablicę podczas przypisywania
- $obj = new StdClass;
- $obj->a = "Hay";
- $obj->b = "Bee";
- $obj->c = "Sea";
- $view->assign((array) $obj);
- ]]>
- </programlisting>
- <para>
- Oczywiście możesz także przypisywać zmienne jedna po drugiej,
- przekazując nazwę zmiennej jako łańcuch znaków, a potem wartość
- zmiennej:
- </para>
- <programlisting role="php"><![CDATA[
- $view = new Zend_View();
- $view->assign('a', "Hay");
- $view->assign('b', "Bee");
- $view->assign('c', "Sea");
- ]]>
- </programlisting>
- </sect2>
- <sect2 id="zend.view.controllers.render">
- <title>Wykonywanie skryptu widoku</title>
- <para>
- Kiedy już przypisałeś wszystkie zmienne, kontroler powinien przekazać
- obiektowi Zend_View informację o wykonaniu konkretnego skryptu widoku.
- Zrób to wywołując metodę render(). Zauważ, że ta metoda zwróci
- wygenerowany widok zamiast wyświetlając go, więc musisz sam go wyświetlić
- za pomocą funkcji echo() lub print().
- </para>
- <programlisting role="php"><![CDATA[
- $view = new Zend_View();
- $view->a = "Hay";
- $view->b = "Bee";
- $view->c = "Sea";
- echo $view->render('someView.php');
- ]]>
- </programlisting>
- </sect2>
- <sect2 id="zend.view.controllers.script-paths">
- <title>Ścieżki skryptu widoku</title>
- <para>
- Domyślnie, Zend_View oczekuje, że skrypty widoku są umieszczone
- względnie do skryptu wywołującego. Na przykład jeśli
- Twój skrypt kontrolera jest w katalogu "/path/to/app/controllers"
- i wywołuje on $view->render('someView.php'), to Zend_View będzie
- szukać pliku "/path/to/app/controllers/someView.php".
- </para>
- <para>
- Oczywiście, Twoje skrypty są pewnie umieszczone gdzieś indziej.
- Aby poinformować Zend_View o tym, gdzie ma szukać skryptów, użyj
- metody setScriptPath().
- </para>
- <programlisting role="php"><![CDATA[
- $view = new Zend_View();
- $view->setScriptPath('/path/to/app/views');
- ]]>
- </programlisting>
- <para>
- Teraz kiedy wywołasz metodę $view->render('someView.php'), będzie ona
- szukać pliku "/path/to/app/views/someView.php".
- </para>
- <para>
- Oczywiście możesz dodawać ścieżki na stos używająć metody addScriptPath().
- Gdy dodajesz ścieżki na stos, Zend_View będzie szukać skryptu widoku
- począwszy od ostatnio dodanej ścieżki. To pozwala na nadpisanie domyślnych
- widoków za pomocą innych widoków, dzięki czemu możesz tworzyć różne
- "motywy" czy "skórki" dla niektórych widoków, zostawiając inne bez zmian.
- </para>
- <programlisting role="php"><![CDATA[
- $view = new Zend_View();
- $view->addScriptPath('/path/to/app/views');
- $view->addScriptPath('/path/to/custom/');
- // teraz gdy wywołasz $view->render('booklist.php'), Zend_View będzie
- // wpierw szukać pliku "/path/to/custom/booklist.php", potem
- // "/path/to/app/views/booklist.php", a ostatecznie pliku "booklist.php"
- // w bieżącym katalogu
- ]]>
- </programlisting>
- </sect2>
- </sect1>
|