Sprawozdanie z Seminarium Dyplomowego
Transkrypt
Sprawozdanie z Seminarium Dyplomowego
PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP autor: Lewandowski Marek Elbląg, 25.10.2010 1. Szkielet programistyczny – framework CakePHP Budowa dużych serwisów internetowych wiąże się z koniecznością ponoszenia dużych nakładów czasu pracy. Nazwa framework wywodzi się z języka angielskiego i dla określonego zastosowania oznacza „ramę”. W programowaniu frameworkiem nazywamy strukturę mającą na celu przyspieszenie procesu budowy a także ujednolicenie zasad tworzenia w celu łatwiejszej rozbudowy i wdrażania. Wśród istniejących rozwiązań istnieje wiele niezależnych od siebie gotowych systemów typu framework. Duża ich część jest dostępna darmowo, i posiada otwarty kod źródłowy. Gotowe systemy zróżnicowane są w swej budowie i zróżnicowane są pod względem funkcjonalności. Wpływ na dobór określonego rozwiązania miały wymienione czynniki: • łatwość instalacji, • możliwość rozszerzania funkcjonalności framework, • szybkość budowy w systemie, • powszechność użytego wzorca projektowego. CakePHP jest to wolne oprogramowanie stworzone dla środowiska PHP w celu ujednolicenia i ułatwienia procesu tworzenia oraz jego przyspieszenia podczas budowy aplikacji webowych. Środowisko narzuca odpowiedni sposób tworzenia serwisu przez co usystematyzowany sposób tworzenia ułatwia rozbudowę jak i tworzenie obszernych serwisów. Najnowsza wersja serwisu jest w pełni kompatybilna z językiem PHP w wersji 4 jak i 5. Do uruchomienia systemu niezbędne jest posiadanie serwera WWW wraz z bazą danych. Najpopularniejszą konfiguracją jest użycie serwera Apache oraz powiązanie z nim bazy danych MySQL. W tak przygotowanym środowisku instalacja CakePHP jest bardzo prosta i najczęściej ogranicza się do sprawdzenia praw dostępu w katalogu plików tymczasowych frameworka oraz spreparowaniu pliku konfiguracyjnego bazy danych. 2. Zalety zastosowania frameworku Istotną zaletą jaką posiada CakePHP jest działanie w oparciu o wzorzec projektowy MVC1. Architektura MVC jest obiektowo zorientowaną koncepcją programistyczną dzielącą aplikację na 3 warstwy. Podział ten służy uporządkowaniu architektury systemu. Dzięki niemu zmiany dokonywane w jednej części serwisu nie niosą za sobą konieczności wprowadzania zmian w pozostałych jego częściach. Warstwa modelu odpowiedzialna jest za komunikacje aplikacji z danymi serwisu oraz walidację danych. Inaczej wyodrębnia on dane jakie chcemy uzyskać z fizycznej bazy danych. Warstwa widoku odpowiedzialna jest za reprezentacje danych uprzednio spreparowanych w modelu aplikacji. Widok tworzy instancje klas modelu i wywołuje metody odpowiedzialne za pobranie odpowiednich danych. 1 Model-View-Controller (pol. Model-Widok-Kontroler). Warstwa kontrolera odpowiedzialna jest za interakcje użytkownika z aplikacją. Kontroler akceptuje żądanie użytkownika i za pomocą modelu oraz widoku preparuje dane oraz ich reprezentacje. Proces działania aplikacji stworzonej w oparciu o model MVC przedstawiony jest na poniższym rysunku. Rysunek przedstawia poszczególne szczeble przekazywania informacji pomiędzy określonymi warstwami modelu w przykładowym żądaniu MVC. Rysunek 2.1 Przykładowe żądanie MVC Źródło: http://book.cakephp.org/view/10/Understanding-Model-View-Controller Widoczne na powyższym rysunku poszczególne kroki oznaczają: 1. Wysłanie żądania użytkownika poprzez przeglądarkę internetową do serwera. 2. Analiza żądania Url poprzez dysposytor i przekazanie go do odpowiedniego kontrolera. 3. Przetworzenie żądania użytkownika. 4. Przekazanie informacji potrzebnych do realizacji żądania użytkownika. 5. Przekazanie informacji do modelu w celu reprezentacji wyniku dla użytkownika zewnętrznego. 6. Przesłanie spreparowanego widoku do przeglądarki użytkownika wysyłającego żądanie. Kolejną istotną zaletą omawianego zastosowania jest zintegrowana obsługa technologii Scafoldingu, która dla określonego zastosowania z języka angielskiego oznacza „rusztowanie”. Stosowanie tej techniki umożliwia błyskawiczne tworzenie i operowanie danymi w fizycznej bazie danych. Dzięki zastosowaniu tej funkcji tworzenie podstawowych operacji bazo danowych, czyli dodawanie, usuwanie, aktualizacja oraz czytanie danych jest możliwe poprzez zastosowanie jednej funkcji w pliku modelu aplikacji. Przykładowo chcąc operować na danych znajdujących się w tabeli comments wystarczy utworzyć plik modelu o nazwie comment.php w katalogu app/models. Rysunek 2.2 Treść pliku modelu źródło: opracowanie własne Następnie należy utworzyć kontroler sterujący pracą pliku modelu dla tebali comments. Kontroler dzięki zastosowaniu funkcji scaffolding automatycznie wygeneruje widok i wyświetli go w postaci strony html. Rysunek 2.3 Treść kontrolera źródło: opracowanie własne Wynikiem powyższych działań jest wygenerowanie strony HTML wyświetlającej zawartość tabeli Comments a także umożliwiającej operowanie na niej. Rysunek 2.4 Strona wyświetlona za pomocą funkcji scaffold źródło: opracowanie własne Kolejną istotną zaletą zastosowania CakePHP jest mechanizm walidacji danych. Mechanizm ten odpowiedzialny jest za sprawdzanie spójności danych oraz ich przydatnośc. Ponadto framework posiada funkcję reqest dispatcher, która z języka angielskiego oznacza dyspozytor żądań. Mechanizm ten umożliwia łatwą nawigację w serwisie tworząc automatycznie adresy URL do poszczególnych podstron serwisu. Dla powyższego przykładu w celu wyświetlenia strony odnoszącej się do tabeli comments żądanie wyglądało by następująco: http://adres_strony_głównej/comments. 3. Wnioski Przedstawione w powyższym opracowaniu zalety jakie niesie za sobą stosowanie frameworku nie są jedynymi zaletami CakePHP. Z punktu widzenia autora pracy są one jednak istotnymi udogodnieniami w trakcie procesu budowy aplikacji. Tworzenie aplikacji internetowych za pomocą CakePHP wymaga dodatkowych nakładów pracy w celu poznania struktury systemu i sposobu jego działania. Czas budowy serwisów w oparciu o zastosowanie framworku jest jednak wiele krótszy niż przy budowie serwisu klasycznymi metodami.