Marketing internetowy w praktyce!

Zarejestruj się do bezpłatnej platformy e-learningowej.

Zarejestruj się bezpłatnie

Kanał YouTube – Efektywna firma w necie

Wskazówki, rozmowy, inspiracje

Subskrybuj kanał na YouTube i bądź na bieżąco!

27.11.2014 | czas czytania: 5 min | Web Design | autor: Artefakt

Kontroler w Zend Framework

Kontroler w Zend Framework

Zend Framework jest nowoczesnym narzędziem, silnie zorientowanym obiektowo, które w implementacji bibliotek wykorzystuje obiektowe wzorce projektowe. Zend Framework umożliwia m. in. tworzenie aplikacji w architekturze MVC (Model-Widok-Kontroler).

MVC jest wzorcem projektowym, którego istotą jest oddzielenie warstwy aplikacji od warstwy prezentacji, co realizuje się poprzez podział aplikacji na trzy warstwy:

  • Model – jest częścią aplikacji, która definiuje jej podstawową funkcjonalność. Zazwyczaj jest to logika biznesowa aplikacji oraz procedury dostępu do bazy danych.
  • Widok – definiuje interfejs aplikacji, który jest prezentowany użytkownikowi. Zazwyczaj kontroler przekazuje dane do widoku, który następnie przedstawia je w określonym formacie. Przykładowo strona internetowa zbudowana w oparciu o ten wzorzec projektowy zawiera w widoku znaczniki HTML, podczas gdy widok kanału RSS jest dokumentem XML o ściśle określonym formacie.
  • Kontroler – stanowi warstwę spajającą ze sobą pozostałe warstwy aplikacji. W typowej aplikacji kontroler wykonuje działania na modelu (np. dodawanie, edycję oraz usuwanie), ustala na podstawie żądania HTTP widok do wyświetlenia oraz przekazuje do niego dane pobrane poprzez model danych.

W Zend Framework implementacja kontrolera jest zbiorem klas i interfejsów programistycznych wzajemnie ze sobą powiązanych. Niniejszy artykuł charakteryzuje poszczególne elementy tworzące kontroler w Zend Framework:

 

  • Zend_Controller_Front – implementuje wzorzec projektowy FrontController, w którym wszystkie żądania HTTP odebrane przez serwer WWW przechodzą przez dokładnie jeden obiekt. Takie rozwiązanie zapobiega powielaniu kodu. Jest głównym komponentem kontrolera, który w trakcie działania tworzy instancje pozostałych elementów tworzących kontroler oraz przekazuje do nich sterowanie. Po przekazaniu żądania do aplikacji Zend_Controller_Front ustala wykonawcę akcji (Zend_Controller_Action), do którego następnie deleguje żądanie.
  • Zend_Controller_Request_Abstract – obiekt żądania, reprezentuje środowisko dla żądania, udostępnia interfejs innym obiektom do ustawiania i pobierania nazwy kontrolera i akcji oraz opcjonalnych parametrów żądania. Domyślnie wykorzystywany jest Zend_Controller_Request_Http, który stanowi środowisko dla żądania HTTP.
  • Zend_Controller_Router_Interface – komponent przeznaczony do definiowania adresów aplikacji. Wykorzystywany podczas routingu do ustalenia nazwy kontrolera i jego akcji, do których zostanie przekazane sterowanie. Po zakończeniu routingu nazwa kontrolera i akcji oraz opcjonalne parametry żądania są ustawiane w obiekcie żądania. Domyślnym routerem w Zend Framework jest Zend_Controller_Router_Rewrite. Przykładowo adres domain. com/article/edit/id/10 zostanie zdekomponowany przez wspomniany router w następujący sposób: nazwa kontrolera – article, nazwa akcji – edit, parametr id o wartości 10.

  • Zend_Controller_Dispatcher_Interface – komponent, którego celem jest ustalenie pliku kontrolera, nazwy klasy kontrolera oraz jego metody (akcji) do wywołania. Komponent ten korzysta z informacji zawartych w obiekcie żądania. Domyślnie w tym procesie framework korzysta z klasy Zend_Controller_Dispatcher_Standard. Przykładowo dla kontrolera article i akcji edit nazwa klasy kontrolera i jego metody (akcji) będą miały odpowiednio postać: ArticleController oraz editAction.
  • Zend_Controller_Action – komponent stanowiący wykonawcę akcji, miejsce w aplikacji, gdzie kontroler wchodzi w interakcje z pozostałymi warstwami aplikacji: modelem i widokiem. Każdy kontroler jest pojedynczą klasą dziedziczącą po klasie Zend_Controller_Action i zawiera definicję przynajmniej jednej akcji.
  • Zend_Controller_Response_Abstract – obiekt odpowiedzi, reprezentuje środowisko dla odpowiedzi, pobiera i zwraca odpowiedź z Zend_Controller_Action. Domyślnie wykorzystywanym obiektem odpowiedzi w aplikacjach internetowych jest Zend_Controller_Response_Http przechowujący nagłówki HTTP i treść, które są ostatecznie odbierane np. przez przeglądarkę internetową.

Podsumowując, pomiędzy odebraniem przez serwer żądania HTTP a wysłaniem odpowiedzi ma miejsce szereg czynności wykonywanych przez powyżej opisane komponenty. Zend_Controller_Front po otrzymaniu żądania ustala na podstawie obiektu Zend_Controller_Router_Rewrite wykonawcę akcji – nazwę kontrolera i jego akcji.

Informacja ta jest następnie przekazywana do obiektu Zend_Controller_Dispatcher_Standard, który wywołuje odpowiednią akcję kontrolera. Po wykonaniu akcji sterowanie wraca do obiektu Zend_Controller_Front.

Zapisz się na nasz bezpłatny newsletter i poznaj sprawdzone wskazówki marketingowe!

Potrzebujesz skutecznych rozwiązań marketingowych? Masz je na wyciągnięcie ręki. Nasi eksperci czekają na Twój sygnał. Porozmawiamy?

Zamów rozmowę
Kontakt