Vysoká Škola Báňská – Technická Univerzita Ostrava
Total Page:16
File Type:pdf, Size:1020Kb
Vysoká škola báňská – Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky PHP Frameworky PHP Frameworks 2010 Jakub Vaněk VŠB – Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky Akademický rok 2009/2010 Zadání bakalářské práce Řešitel: Jakub Vaněk Obor: 2612R025 Informatika a výpočetní technika Téma: PHP Frameworky Cílem bakalářské práce je popsat práci a využití PHP Frameworků a navrhnout rozšíření vybraných frameworků 1. Popište význam, použití, výhody a nevýhody frameworků. 2. Popište technologii PHP a PHP Frameworků. 3. Uveďte a vyberte několik zástupců z PHP Frameworků, pro vybrané PHP Frameworky proveďte jejich důkladný popis a porovnání. 4. Popište možnosti rozšíření vybraných frameworků. 5. Rozšiřte alespoň jeden PHP Framework o vybranou vlastnost. 6. Znázorněte a popište použití frameworků v praxi. Odborná literatura: Podle pokynů vedoucího Vedoucí: Ing. Tomáš Drábek Datum zadání: 20. listopadu 2009 Termín odevzdání: 7. května 2010 Prohlášení Prohlašuji, že jsem tuto bakalářskou práci vypracoval samostatně pod vedením vedoucího práce. Uvedl jsem všechny literární prameny a publikace, ze kterých jsem čerpal. V Ostravě dne: ……………………… Podpis: ……………………………... Poděkování Tímto děkuji vedoucímu bakalářské práce Ing. Tomášovi Drábkovi za obětavost, preciznost, odbornou pomoc a hlavně ochotu pomoci a poradit vždy, když při zpracování mé bakalářské práce bylo potřeba. Abstrakt Tato práce má za úkol poskytnout čtenáři obecný rozhled o vlastnostech, možnostech využití a důvodech, proč právě při vývoji webových aplikací v programovacím jazyce PHP využít PHP Frameworků. Jde o moderní trend vývoje aplikací, kdy dochází k značnému zjednodušení vývoje a k neméně důležité úspoře času. V této práci je možné naleznou seznámení s důležitými pojmy, díky kterým získá čtenář základy a prvotní přehled při studiu tohoto zajímavého tématu. V úvodu je možné nalézt důvody proč zvolit právě PHP frameworky a jaké aspekty hrají důležitou roli při jejich výběru. Dále je práce zaměřená na popis představitelů z řad frameworku. Díky tomu může čtenář získat jistý přehled o možnostech a využití. Následně byly vybrány a podrobně popsány Prado framework a Nette framework, které je možné také díky této práci osobně vyzkoušet. Čtenář zde nalezne průvodce od požadavku frameworku až po prvotní implementaci aplikace. Na závěr toho popisu je možné vždy nalézt jejich zhodnocení. Tímto se čtenář dozví v čem daný framework vyniká a naopak v čem jsou jeho nevýhody. Konec zhodnocení jsem obohatil o mé osobní zkušenosti a doporučení, což může také pomoci při výběru frameworku. Klíčové slova PHP, Framework, MVC architektura, webová aplikace, Nette, Prado, komponenta Abstract The aim of the thesis is to provide a broad survey about features, possibilities of using and reason why to use PHP Frameworks in the web application development in PHP programming language. It is a modern trend of application development leading to substantial simplification of development and also very important time saving. The thesis includes an introduction with important terms which bring basis and very fist view to this interesting theme. The beginning of the thesis is focused on the reasons why to choose just PHP frameworks and which aspects should be taken into consideration in the process of choosing them. Another part of the thesis is focused on the framework products description. Thanks to this a reader could be familiar with possibilities and their using. Prado Framework and Nette framework were chosen and described into details. Thanks to this thesis it is possible to try them out. Also a guide involving a framework request up to the initial implementation of application is presented here. At the end of the description their evaluation is given. It displays the advantages and disadvantages of the particular framework. The conclusion is enriching about personal experience and recommendations that could be useful in case of framework choice. Keywords PHP, Framework, MVC architecture, web application, Nette, Prado, component Seznam použitých symbolů a zkratek ACL – Access control lists AJAX – Asynchronous JavaScript and XML API - Application Programming Interface BSD - Berkeley Software Distribution CGI - Common Gateway Interface CRUD – Create, Read, Update, Delete CMS - Content management systém CSRF - Cross-site request forgery HTML – HyperText markup language JSON - JavaScript Object Notation MySQL - My Structured Query Language MVC – Model View Controller ODBC – Open database connectivity ORM - Object-relation mapping PDF - Portable document format PDO - PHP Data Objects PHP – Personal home page PHP/FI - Personal Home Page a Form Interpreter SEO - Search Engine Optimization SOAP - Simple Object Access Protocol URL - Uniform Resource Locator WML - Wireless Markup Language WWW - World wide web XHTML - Extensible hypertext markup language XML - Extensible markup language XSS - Cross-site scripting OBSAH 1 ÚVOD ........................................................................................................................ 1 2 PHP ............................................................................................................................ 2 2.1 FUNKCE PHP ....................................................................................................... 2 2.2 HISTORIE PHP ..................................................................................................... 3 2.3 VÝHODY PHP ...................................................................................................... 5 2.4 NEVÝHODY PHP .................................................................................................. 5 3 FRAMEWORK ......................................................................................................... 6 3.1 APLIKAČNÍ FRAMEWORK ..................................................................................... 7 3.1.1 Výhody a přednosti aplikačního frameworku: ............................................... 8 3.2 MVC FRAMEWORK .............................................................................................. 9 3.2.1 Model .........................................................................................................10 3.2.2 View ...........................................................................................................10 3.2.3 Controller ....................................................................................................11 3.2.4 Funkce MVC ..............................................................................................11 3.3 PHP FRAMEWORKY ............................................................................................13 3.3.1 Důležité vlastnosti PHP frameworků ...........................................................14 4 PŘEHLED PHP FRAMEWORKŮ .........................................................................16 4.1 CAKEPHP ...........................................................................................................16 4.2 PRADO ................................................................................................................18 4.3 NETTE FRAMEWORK ...........................................................................................20 4.4 SYMFONY ...........................................................................................................21 4.5 CODEIGNITER .....................................................................................................23 4.6 ZEND FRAMEWORK .............................................................................................25 5 PODROBNĚJŠÍ ROZBOR JEDNOTLIVÝCH FRAMEWORKŮ ........................27 5.1 PRADO ..............................................................................................................27 5.1.1 Výhody, přednosti a vlastnosti .....................................................................27 5.1.2 Požadavky na systém ..................................................................................28 5.1.3 Instalace ......................................................................................................29 5.1.4 Adresářová struktura ...................................................................................29 5.1.5 Struktura a práce s frameworkem ................................................................31 5.1.6 Zajímavé vlastnosti a funkce .......................................................................32 5.1.7 Srovnání s ostatními frameworky ................................................................33 5.1.8 Zhodnocení .................................................................................................33 5.2 NETTE ...............................................................................................................34 5.2.1 Výhody, přednosti a vlastnosti .....................................................................34 5.2.2 Požadavky na systém ..................................................................................36 5.2.3 Instalace ......................................................................................................36 5.2.4 Adresářová struktura ...................................................................................38 5.2.5 Struktura a práce s frameworkem ................................................................40 5.2.6 Zajímavé vlastnosti a funkce .......................................................................43 5.2.7 Srovnání s