Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Dr inż. Piotr Czapiewski. Framework (rama projektowa, szkielet) to w programowaniu struktura wspomagająca tworzenie, rozwój i testowanie powstającej.

Podobne prezentacje


Prezentacja na temat: "Dr inż. Piotr Czapiewski. Framework (rama projektowa, szkielet) to w programowaniu struktura wspomagająca tworzenie, rozwój i testowanie powstającej."— Zapis prezentacji:

1 dr inż. Piotr Czapiewski

2

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, Seam (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ść

7

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ć

9

10 Dwa istotne podziały Model ––––––––– Prezentacja Widok ––––––––– Kontroler

11 Rozdzielenie modelu i prezentacji Dwa aspekty programowania Inne problemy, inne punkty widzenia Widok – mechanizmy UI, projekt interfejsu, układ kontrolek Model – logika biznesowa, procesy, interakcja z bazą danych Inne technologie, biblioteki Skrajny przypadek – specjalizacja programistów 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 Od różnych wariantów kolorystycznych po całkowicie różne interfejsy 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

15

16 Zawartość ZendFramework minimal library – pliki tworzące bibliotekę Zend Framework bin – pliki uruchamiane z linii poleceń podczas pracy nad projektem

17

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

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: Ścieżka do kontrolera IndexController: Ścieżka do akcji indexAction w kontrolerze IndexController:

26 Aplikację uruchamiamy wchodząc na adres katalogu publicznego

27 Odebranie danych z żądania HTTP $x = $this->getRequest()->getPost('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

30 Overloading Znaczenie inne niż w większości języków obiektowych Metoda dynamicznego tworzenia pól i metod Magiczne metody __get(), __set(), __isset(), __unset() Wywoływane automatycznie przy próbie dostępu do nieistniejącego lub ukrytego pola ( private, protected )

31 Przekazywanie danych z kontrolera do widoku Przechowywanie danych w modelu Równocześnie dostęp obiektowy i łatwy zapis do bazy

32

33 Zend Framework Manual Tomasz Skaraczyński, Andrzej Zoła: PHP5. Programowanie z wykorzystaniem Symfony, CakePHP, Zend Framework. Helion 2009 M. Fowler et al.: Patterns of Enterprise Application Architecture. Addison Wesley 2002


Pobierz ppt "Dr inż. Piotr Czapiewski. Framework (rama projektowa, szkielet) to w programowaniu struktura wspomagająca tworzenie, rozwój i testowanie powstającej."

Podobne prezentacje


Reklamy Google