Home > PHP > Zend Layout

Zend Layout

Od wersji 1.5 Zend framwork wyposarzony jest w zend layout, wzorzec który umożliwia nam proste zarządzanie layoutami.
Do uruchomienia layoutów nie potrzebujemy zbyt wiele kodu, na dobrą sprawę wystarczy nam tylko jedna linijka

1
$layout = Zend_Layout::startMvc();

Layout inicjujemy w “bazowym kontrolerze” po którym dziedziczą wszystkie kontrolery u mnie jest to My_Controller_Action który dziedziczy po Zend_Controller_Action.

Jako że kożystam ze smarty ustawiam sufix dla szablonów i kilka innych opcji

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$options = array(
                'layout'     => 'main', //nazwa głównego layout'u
                'layoutPath' => './frontend/templates/', // ścieżka
                'contentKey' => 'content', //klucz do którego zostaną przypisane zrenderowane szablony poszczególnych akcji
                );
 
$layout = Zend_Layout::startMvc($options);
$layout->setViewSuffix('tpl');
 
//Przypisujemy $layout do właściwości głównego kontrolera 
//$this->layout dzięki czemu $layout będzie dostępny 
//we wszystkich potomnych kontrolerach
$this->layout = $layout; 
 
//pzrzypisujemy $layout do szablonu
$this->view->assign( 'layout', $layout );

I właściwie całą pracę związaną z konfiguracją mamy już za sobą, teraz możemy już korzystać z layoutów.

Layouty możemy bardzo łatwo zmieniać w zależności od tego jakiego potrzebujemy dla danej akcji. Możemy to zrobić na dwa sposoby wpisując w akcji:

public function indexAction() 
{
        //Wywołujemy layout foobaz.tpl
	$this->_helper->layout->setLayout('foobaz');
        //lub
	$this->layout->setLayout('foobaz');
}

Wywołanie $this->layout… jest o tyle “lepsze”, że dostajemy jedynie obiekt layoutu zamiast obiektu helper z layoutem.

Zend layout jest o tyle wygodny, że możemy przypisać do niego zmienne tak samo jak przypisujemy zmienne do szablonów akcji poprzez $this->view->zmienna1 = ‘Bla bla bla’;, oczywiście mozemy to też zrobić poprzez obiekt layoutu $this->layout->zmienna2 = ‘La la la’;

Z mojego doświadczenia wynika, że rzadko używam innych layautów niż główny (wcześniej musiałęm sobie symulować coś w rodzaju laya), ale bez tego wzorca ciężko jest się obejść w niektórych sytuacjach, a jak się go już ma trzeba z niego korzystać.

Powiązane wpisy:

  1. Brak komentarzy
  1. Brak jeszcze trackbacków

agencja reklamowa lublin ślub i wesele senniki