Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych



Podobne dokumenty
Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

REFERAT PRACY DYPLOMOWEJ

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Program szkolenia: Symfony, nowoczesny framework PHP

Forum Client - Spring in Swing

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE

Ruby on Rails. Supersilnik WWW. Łukasz Włodarczyk

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework

E-commerce. Genialnie proste tworzenie serwisów w PHP i MySQL.

Modele danych walidacja widoki zorientowane na model

Programowanie w internecie nazwa przedmiotu SYLABUS A. Informacje ogólne

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Referat pracy dyplomowej

PRZEWODNIK PO PRZEDMIOCIE

app/ - folder zawiera pliki konfiguracyjne dla całej aplikacji src/ - folder zawiera cały kod PHP aplikacji

SYSTEMY ZARZĄDZANIA TREŚCIĄ WORDPRESS

app/ - folder zawiera pliki konfiguracyjne dla całej aplikacji Można wybrać sposób zapisu konfiguracji: YML, XML, PHP

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

ASP.NET MVC. Grzegorz Caban 20 stycznia 2009

Instrukcja obsługi Outlook Web App i konfiguracji Thunderbird

Wstęp [2/2] Wbrew częstemu przekonaniu, nie są one gotowymi rozwiązaniami, to tylko półprodukty rozwiązania.

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką

OfficeObjects e-forms

Web frameworks do budowy aplikacji zgodnych z J2EE

Tomasz Grześ. Systemy zarządzania treścią

System Kancelaris. Zdalny dostęp do danych

Wymogi prawne dotyczące BIP CMS. Zasady funkcjonowania serwisu

PHP: bazy danych, SQL, AJAX i JSON

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, O STRUKTURZE PRZEDMIOTOWEJ

Wprowadzenie do framework a Symfony

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

REFERAT O PRACY DYPLOMOWEJ

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

PRZEWODNIK PO PRZEDMIOCIE

Czym jest Ruby on Rails?

Załącznik 2 utworzenie projektu

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

Użycie pakietów instalacyjnych.msi w oprogramowaniu WYWIAD Plus

Portal SRG BFG. Instrukcja korzystania z Portalu SRG BFG

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

ActiveXperts SMS Messaging Server

PRZEWODNIK PO PRZEDMIOCIE

Programowanie obiektowe

Wzorce architektoniczne

Wprowadzenie do programowania aplikacji mobilnych

Programowanie w Ruby

REFERAT PRACY DYPLOMOWEJ

Aplikacje internetowe - laboratorium

Odseparowanie kodu PHP i warstwy prezentacji od dawna było celem

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Bazy danych 2. Wykład 1

Programowanie obiektowe

Rok szkolny 2015/16 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. ADMINISTROWANIE BAZAMI DANYCH kl. 4c

Konfiguracja poczty IMO w programach Microsoft Outlook oraz Mozilla Thunderbird

Portal SRG BFG Instrukcja korzystania z Portalu SRG BFG

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

Szczegółowy opis zamówienia:

Laboratorium 7 Blog: dodawanie i edycja wpisów

Instrukcja obsługi/instalacji platformy Krok w Przedsiębiorczość Administrator platformy

SZKOLENIE TWORZENIE SYSTEMÓW

Aplikacje WWW - laboratorium

Wzorce projektowe. dr inż. Marcin Pietroo

Wprowadzenie do Doctrine ORM

Baza danych sql. 1. Wprowadzenie

EPI: Interfejs Graficzny Wykład nr 4 Podstawy frameworku Rails

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Analiza i programowanie obiektowe 2016/2017. Wykład 6: Projektowanie obiektowe: diagramy interakcji

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Jednym z najważniejszych zagadnień, z którym może się zetknąć twórca

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

Aplikacja do podpisu cyfrowego npodpis

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010

Specyfikacja implementacyjna aplikacji serwerowej

Programowanie w Ruby

INFRA. System Connector. Opis systemu

R o g e r A c c e s s C o n t r o l S y s t e m 5

Podstawy technologii WWW

Sesje i logowanie. 1. Wprowadzenie

APLIKACJA SHAREPOINT

REFERAT O PRACY DYPLOMOWEJ

Ten krótki poradnik pomoże Ci zainstalować nasz katalog no-name na swojej stronie internetowej.

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

WYMAGANIA EDUKACYJNE. Witryny i Aplikacje Internetowe klasa I

Zrąb JavascriptMVC. Krzysztof Płocharz. 6 kwiecień Uniwersytet Warszawski

Projekt Giełdy Terminów Koncepcja. 19 czerwca 2015

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

Nadzorowanie stanu serwerów i ich wykorzystania przez użytkowników

Dokument Detaliczny Projektu

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

KARTA PRZEDMIOTU. Warsztaty z Ruby on Rails. Ruby on Rails Workshop

Projektowanie i architektura frameworka w języku PHP. Tomasz P.F. Kowalczyk

Transkrypt:

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 MVC 1 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.