STAG92571.Pdf

STAG92571.Pdf

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í ............................................................................................................

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    58 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us