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

1 dr inż. Piotr Czapiewski ...
Author: Izabela Kalinowska
0 downloads 2 Views

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,(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, 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

15

16  Zawartość ZendFramework-1.10.2-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 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