
Univerzita Hradec Králové Fakulta informatiky a managementu Katedra informačních technologií Popis moderních PHP Frameworků Bakalářská práce Autor: Martin Gold Studijní obor: AI-3 Vedoucí práce: Mgr. Daniela Ponce, Ph.D. Hradec Králové Duben 2020 Prohlášení: Prohlašuji, že jsem bakalářskou práci zpracoval samostatně a s použitím uvedené literatury. V Hradci Králové dne 29.4.2020 Martin Gold Poděkování: Děkuji vedoucí bakalářské/diplomové práce Mgr. Daniele Ponce, Ph.D. za metodické vedení práce. Anotace Bakalářská práce se zaměřuje na popis moderních PHP frameworků (Nette, Symfony a Laravel). Porovnání je zaměřeno jak na frameworky jako na celky, tak i na jednotlivé komponenty. Frameworky jsou představeny na funkčně stejných aplikacích. Annotation Title: Modern PHP frameworks comparison The graduation work is devoted to description of modern PHP frameworks (Nette, Symfony and Laravel). The description is focused on whole frameworks and its individual components. These frameworks are introduced on sample application with equivalent functionality. Obsah 1 Úvod ........................................................................................................................................................ 1 2 Cíl práce................................................................................................................................................. 2 3 Kritéria hodnocení ........................................................................................................................... 3 4 Teoretická část ................................................................................................................................... 4 4.1 Jazyk PHP ..................................................................................................................................... 4 4.1.1 Představení jazyka PHP ............................................................................................... 4 4.1.2 Stručné výhody a nevýhody PHP............................................................................. 4 4.2 Moderní PHP .............................................................................................................................. 4 4.2.1 Organizace PHP FIG ....................................................................................................... 4 4.2.2 Balíčkovací systém Composer .................................................................................. 5 4.2.3 Typovost PHP.................................................................................................................... 6 4.3 Přechod od skriptování k webovým aplikacím ......................................................... 7 4.3.1 Starý přístup k vývoji .................................................................................................... 7 4.3.2 Front Controller ............................................................................................................... 8 4.3.3 MVC (Model-View-Controller) .................................................................................. 8 4.3.4 Dependency Injection ................................................................................................... 9 4.3.5 Dependency Injection Container .......................................................................... 11 4.3.6 Šablony .............................................................................................................................. 11 4.4 Databázová vrstva ................................................................................................................ 12 4.4.1 Active Record ................................................................................................................. 13 4.4.2 Data Mapper ................................................................................................................... 13 5 Praktická část .................................................................................................................................. 16 5.1 Instalace frameworků ......................................................................................................... 17 5.2 Běhové prostředí aplikace ................................................................................................ 18 5.3 Instalace aplikace .................................................................................................................. 18 5.4 Frontendové závislosti ....................................................................................................... 19 5.4.1 Laravel – Mix .................................................................................................................. 20 5.4.2 Symfony – Encore ........................................................................................................ 20 5.4.3 Nette ................................................................................................................................... 21 5.5 Směrování ................................................................................................................................. 21 5.5.1 Symfony ............................................................................................................................ 21 5.5.2 Laravel ............................................................................................................................... 22 5.5.3 Nette ................................................................................................................................... 23 5.6 Šablony ....................................................................................................................................... 25 5.6.1 Symfony – šablonovací jazyk Twig ...................................................................... 25 5.6.2 Laravel – šablonovací jazyk Blade ....................................................................... 26 5.6.3 Nette – šablonovací jazyk Latte ............................................................................. 27 5.7 Databázová vrstva ................................................................................................................ 29 5.7.1 Symfony – Doctrine ..................................................................................................... 30 5.7.2 Laravel – Eloquent ....................................................................................................... 33 5.7.3 Nette – Database Explorer ....................................................................................... 35 5.8 Konzole....................................................................................................................................... 37 5.8.1 Symfony ............................................................................................................................ 37 5.8.2 Laravel ............................................................................................................................... 39 5.8.3 Nette ................................................................................................................................... 40 5.9 Databázové migrace ............................................................................................................. 41 5.9.1 Symfony ............................................................................................................................ 41 5.9.2 Laravel ............................................................................................................................... 42 5.9.3 Nette ................................................................................................................................... 42 5.10 Controllery ........................................................................................................................... 43 5.10.1 Symfony ............................................................................................................................ 43 5.10.2 Laravel ............................................................................................................................... 44 5.10.3 Nette ................................................................................................................................... 44 6 Závěr .................................................................................................................................................... 47 7 Seznam použité literatury ......................................................................................................... 49 Seznam obrázků Obrázek 1 Use Case diagram .............................................................................................................. 16 Obrázek 2 Struktura databáze .......................................................................................................... 30 Seznam tabulek Tabulka 1 Přehled instalačních balíčků ........................................................................................ 17 Tabulka 2 Porovnání směrování ...................................................................................................... 25 Tabulka 3 Porovnání šablonovacích jazyků ............................................................................... 29 Tabulka 4 Porovnání databázových vrstev ................................................................................. 37 Tabulka 5 Porovnání konzolí ............................................................................................................
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages58 Page
-
File Size-