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.