Sprawozdanie z Seminarium Dyplomoweg
Transkrypt
Sprawozdanie z Seminarium Dyplomoweg
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 podczas budowania stron internetowych autor: Lewandowski Marek Elbląg, 25.10.2010 1. Wstęp Budowa rozbudowanych serwisów internetowych wiąże się z koniecznością ponoszenia dużych nakładów pracy, a także tworzenie obszernych ilości plików kodu programu. Tworząc strony internetowe od podstaw, programista musi zaprojektować wszystkie funkcjonalności samodzielnie. Obecnie w Internecie dostępnych jest wiele aplikacji i systemów umożliwiających przyspieszenie i nierzadko ułatwienie budowania stron internetowych. Aplikacje te często udostępniają projektantowi zbiór gotowych funkcji, dzięki którym możliwe jest zaoszczędzenie czasu projektowania serwisu. Do systemów ułatwiających budowę stron internetowych, można zaliczyć CakePHP. 2. Szkielet programistyczny – CakePHP CakePHP jest to struktura programistyczna służąca do budowy aplikacji internetowych. Struktura ta nazywana jest z języka angielskiego frameworkiem i dla określonego zastosowania oznacza „ramę”. Szkielet programistyczny definiuje strukturę oraz mechanizm działania aplikacji, a także udostępnia biblioteki i komponenty służące do wykonywania określonych zadań. CakePHP jest to wolne oprogramowanie stworzone dla środowiska PHP. Stosowane jest ono podczas budowy aplikacji internetowych w celu ujednolicenia oraz przyspieszenia procesu ich budowy. Stosowanie frameworka podczas projektowania stron www umożliwia autorowi korzystanie z funkcji, które w znacznym stopniu mogą wpłynąć na czas wykonywania serwisu. Pliki tworzonej strony oraz baza danych posiadają określony schemat nazewnictwa oraz rozmieszczenia w serwisie. W celu korzystania z funkcjonalności CakePHP od autora wymagane jest przestrzeganie zasad rozmieszczenia kodu i konwencji nazewnictwa. Kod programu udostępniony jest darmowo na stronie producenta. 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 stosunkowo prosta i najczęściej ogranicza się do sprawdzenia praw dostępu w katalogu plików tymczasowych frameworka oraz odpowiednim ustawieniu pliku konfiguracyjnego bazy danych. Struktura folderów systemu przedstawia się następująco: • app, • cake, • vendors, • .htaccess • index.php Z punktu widzenia programisty strony www najistotniejszym folderem jest powyżej folder o nazwie app. W nim znajdują się pliki odpowiedzialne za konfigurację bazy danych, wspomniany powyżej katalog plików tymczasowych i przede wszystkim foldery, w których umieszczane są pliki budowanego serwisu. Istotną cechą CakePHP jest działanie w oparciu o wzorzec projektowy MVC1 wykorzystywany w wielu systemach typu framework. 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 komunikację aplikacji z danymi serwisu. Inaczej, wyodrębnia on dane jakie chcemy uzyskać z fizycznej bazy danych. Warstwa widoku odpowiedzialna jest za reprezentację danych uprzednio pobranych w modelu aplikacji. Widok tworzy instancje klas modelu i wywołuje metody odpowiedzialne za pobranie odpowiednich danych. 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 reprezentację. 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 1 Schemat działania aplikacji w oparciu o wzorzec MVC Widoczne na powyższym rysunku poszczególne kroki oznaczają: 1. Wysłanie żądania użytkownika poprzez przeglądarkę internetową do serwera i przekazanie go do odpowiedniego kontrolera. 2. Przetworzenie żądania użytkownika, wysłanie zapotrzebowania na informację znajdujące się w bazie danych. 3. Przekazanie informacji potrzebnych do realizacji żądania użytkownika. 4. Przekazanie informacji do widoku w celu reprezentacji wyniku dla użytkownika zewnętrznego. 5. Przesłanie widoku do przeglądarki użytkownika wysyłającego żądanie. W CakePHP odpowiednim warstwom przedstawionego powyżej wzorca odpowiadaja odpowiednie foldery znajdujące się w wspomnianym katalogu app/. Katalogi te noszą nazwy zgodne z stosowanym wzorcem, czyli „model”, „view”, „controller”. 1 Model-View-Controller (pol. Model-Widok-Kontroler). 3. Zalety i wady użycia framworka Omawiany w powyższym opracowaniu system ma na celu przyspieszenie i usystematyzowanie pracy podczas tworzenia stron internetowych. W tym celu autorzy frameworka udostępniają zestaw funkcji oraz zasad, którymi winni kierować się projektanci. Istotną zaletą omawianego zastosowania jest technologia Scaffoldingu, która 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 bazodanowych, czyli dodawanie, usuwanie, aktualizacja oraz czytanie danych jest możliwe poprzez zastosowanie jednej funkcji. Używając CakePHP mamy możliwość korzystania z funkcji autoryzacji użytkowników. Odbywa się to poprzez dołączenie komponentu „auth()”. Hasła użytkowników dodawanych przy użyciu tego komponentu są szyfrowane za pomocą algorytmu Message Digest algorithm. Kolejną zaletą CakePHP jest mechanizm walidacji danych. Mechaniz ten odpowiedzialny jest za sprawdzenie poprawności oraz bezpieczeństwo danych wprowadzanych w formularzach. Klasa walidacji w CakePHP zawiera wiele reguł walidacji, które znacząco ułatwiają sprawdzenie poprawności danych. Korzystanie z tych reguł umożliwia zaoszczędzenie czasu jaki projektant poświęciłby na napisanie własnych zasad. Mechanizm ten umożliwia także dodawanie własnych reguł. CakePHP działa w oparciu o wzorzec MVC jak wspomniano powyżej. Zastosowanie tego wzorca wpływa korzystnie na przejrzystość kodu budowanego serwisu. Ułatwia to rozbudowę serwisu a także pozwala projektowanie serwisu dużej grupie ludzi. Przedstawione powyżej przykłady to część zalet jakie daję korzystanie z frameworka podczas budowy serwisu. Niestety stosowanie tej technologii posiada też wady. Stosowanie CakePHP wymaga od programisty dużej wiedzy na temat struktury i zasad działania serwisu. W celu wykorzystania funkcjonalności frameworka konieczne jest zapoznanie się z obszerną dokumentacją. Aby system działał poprawnie niezbędne jest dostosowanie się do konwencji nazewnictwa. System posiada też ograniczenia technologii, których może być wykorzystany. Przykład: Przykład obrazuję wykorzystanie funkcji Scaffolding. Funkcja w sposób automatyczny wyświetli informacje zawarte w określonej tabeli oraz umożliwi operowanie na nich. W przykładzie tabela w bazie danych nosi nazwę comment. Aby móc operować na jej danych należy utworzyć plik modelu o nazwie „comment.php” stanowiący w systemie reprezentację danych tabeli. Rysunek 3 Treść pliku modelu 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 3.4 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 3.5 Strona wyświetlona za pomocą funkcji scaffold źródło: opracowanie własne 4. 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.