Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałIzabela Kalinowska Został zmieniony 9 lat temu
1
dr inż. Piotr Czapiewski
3
Framework (rama projektowa, szkielet) to w programowaniu struktura wspomagająca tworzenie, rozwój i testowanie powstającej aplikacji. Z reguły na framework składają się programy wspomagające, biblioteki kodu źródłowego i inne podobne narzędzia. (Wikipedia) Czym jest framework?
4
Wzorce projektowe – MVC, Front Controller Narzucona organizacja kodu, struktura projektu – łatwiejsze utrzymanie projektu Wspomaganie typowych zadań związanych z budową aplikacji internetowych (np. walidacja formularzy, autoryzacja) Generowanie kodu, np. formularzy, scaffolding Testowanie Bogate biblioteki dodatkowe W czym może nam pomóc framework?
5
Popularne frameworki PHP Zend FrameworkSymfonyCakePHPYiiCodeIgniterKohana Inne popularne frameworki Ruby on Rails (Ruby)Django, Pylons (Python)Spring, Struts,(Java)ASP.NET MVCCatalyst (Perl)Grails (Groovy)
6
Biblioteka dla PHP 5 wspomagająca produktywność programistów aplikacji internetowych Pełna obiektowość Wsparcie wzorca MVC Bogata dokumentacja Zend Framework Convention over configuration Gotowe, proste rozwiązania dla 80% zadań Łatwa rozszerzalność dla osiągnięcia pozostałych 20% Elastyczność – prostota i rozszerzalność
8
Model Zapewnia dostęp do danych Zawiera same dane lub mechanizmy dostępu do nich Widok Wyświetla interfejs użytkownika Wyświetla dane pobrane z modelu, przekazane przez kontroler Odpowiedzialny wyłącznie za prezentację informacji Kontroler Przyjmuje żądanie użytkownika, manipuluje modelem, tworzy widok lub powoduje jego odświeżenie Decyduje, jakie operacje wykonać, jakie modele i widoki wywołać
10
Dwa istotne podziały Model ––––––––– Prezentacja Widok ––––––––– Kontroler
11
Rozdzielenie modelu i prezentacji Dwa aspekty programowania ▪ Inne problemy, inne punkty widzenia, inne technologie ▪ Widok – mechanizmy UI, projekt interfejsu, układ kontrolek ▪ Model – logika biznesowa, procesy, interakcja z bazą danych Kierunek zależności ▪ Prezentacja zależy od modelu, ale model od prezentacji nie
12
(c.d.) Rozdzielenie modelu i prezentacji Prezentacja zależna od kontekstu ▪ Różne sposoby prezentacji tego samego modelu ▪ Zmiana prezentacji nie wpływa na model Ponowne użycie kodu ▪ Wielokrotne użycie elementów modelu, także w innych projektach ▪ Możliwość udostępnienia usług sieciowych Testowanie ▪ Testowanie obiektów niewizualnych jest łatwiejsze ▪ Łatwe testowanie całej logiki dziedzinowej bez uwzględniania GUI
13
Rola kontrolera Obsługa żądania HTTP Decyzja – co dalej zrobić z żądaniem? Jakiego użyć modelu i widoku? Dwa wzorce kontroli Page Controller Osobny obiekt kontrolera dla każdej strony lub dla każdej akcji W najprostszym przypadku łączy w sobie role widoku i kontrolera Front Controller Jeden obiekt obsługuje wszystkie żądania Sprawdza parametry żądania i tworzy kolejne obiekty, przekazując do nich sterowanie Scentralizowana obsługa żądań HTTP, łatwiejsze zarządzanie
14
HTTP Request HTTP Response HTTP Client
16
Zawartość ZendFramework-1.10.2-minimal library – pliki tworzące bibliotekę Zend Framework bin – pliki uruchamiane z linii poleceń podczas pracy nad projektem
18
Narzędzie do tworzenia projektu, dodawania kontrolerów, akcji, formularzy, itp. Wywoływane z linii poleceń zf.php zf.bat (Widnows) lub zf.sh (Linux) Wymagane php.exe w ścieżce systemowej
19
Wywołanie Zend Tool: zf create project nazwa_projektu Wynik: Struktura katologów Kontrolery: ▪ IndexControler ▪ ErrorController Widoki: ▪ index.phtml ▪ error.phtml
20
<?php class IndexController extends Zend_Controller_Action { public function init() { /* Initialize action controller here */ } public function indexAction() { // action body } }
21
Klasy kontrolera Klasa kontrolera musi dziedziczyć z Zend_Controller_Action Nazwa klasy powinna kończyć się słowem Controller, np.: IndexController, ErrorController Zachowanie konwencji nazw plików i klas jest konieczne do poprawnego działania aplikacji
22
Katalog widoków Widoki odpowiadające kontrolerowi IndexController umieszczamy w katalogu: application/views/scripts/index/ Widok dla akcji indexAction umieszczamy w pliku: index.phtml Plik widoku Zwykły plik PHP – mieszanka HTML i PHP Kod PHP ograniczamy do niezbędnego minimum związanego z wyświetlaniem danych
23
Katalog publiczny /public Powinien być jedynym katalogiem udostępnianym przez WWW Początkowo zawiera pliki: ▪.htaccess ▪ index.php Wymagane włączenie mod_rewrite na serwerze
24
Ustawienie środowiska aplikacji Włączenie silnika mod_rewrite Przekierowanie wszystkich żądań do index.php SetEnv APPLICATION_ENV development RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L] SetEnv APPLICATION_ENV development RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L]
25
Adresowanie kontrolerów w URL Załóżmy, że katalog publiczny umieszczony jest na serwerze WWW i widoczny pod adresem: ▪ http://localhost/zf01/public/ http://localhost/zf01/public/ Ścieżka do kontrolera IndexController: ▪ http://localhost/zf01/public/index/ http://localhost/zf01/public/index/ Ścieżka do akcji indexAction w kontrolerze IndexController: ▪ http://localhost/zf01/public/index/index http://localhost/zf01/public/index/index
26
Aplikację uruchamiamy wchodząc na adres katalogu publicznego ▪ http://localhost/zf01/public/ http://localhost/zf01/public/
27
Odebranie danych z żądania HTTP $x = $this->getRequest()->getParam('zmienna'); Dostęp do widoku z poziomu kontrolera: $this->view Ustawienie zmiennej w widoku: $this->view->zmienna = $x;
28
public function indexAction() { $this->view->napis = "Ala ma kota"; } Witamy w Zend Framework napis; ?> controllers/IndexController.php views/scripts/index/index.phtml
29
Zend Framework Manual http://framework.zend.com/manual/en/ http://framework.zend.com/manual/en/ Tomasz Skaraczyński, Andrzej Zoła: PHP5. Programowanie z wykorzystaniem Symfony, CakePHP, Zend Framework. Helion 2009 Włodzimierz Gajda: Zend Framework od podstaw. Wykorzystaj gotowe rozwiązania PHP do tworzenia zaawansowanych aplikacji internetowych Helion 2011 M. Fowler et al.: Patterns of Enterprise Application Architecture. Addison Wesley 2002
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.