IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

1. diel - Úvod do Laravel frameworku pre PHP

Vitajte u prvej lekcie kurzu tvorby webových aplikácií v PHP frameworku Laravel. Laravel je kompletný framework pre PHP, ktorý výrazne zjednodušuje tvorbu webových aplikácií. Ide o kvalitne objektovo navrhnutý a zároveň o vo svete najrozšírenejší PHP framework. Vďaka svojej popularite na neho existuje aj veľa návodov a obsiahla oficiálnej dokumentácie. Sú na ňom postavené väčšie i menšie projekty, niektoré z nich možno nájsť napríklad na tejto stránke. Za zmienku tiež stojí, že základným stavebným kameňom tohto frameworku je framework Symfony, avšak jeho znalosť nie je nutnosťou, pretože vo výsledku sa tieto dva frameworky dosť líšia.

Laravel si zakladá na jednoduchom a prehľadnom kódu. Je význačný tým, že je optimalizovaný pre reálne webové aplikácie. To znamená, že všetko je už predpripravené a komponenty možno vygenerovať pomocou jednoduchých príkazov v termináli. Ak Laravel budete vedieť, vytváranie webových stránok bude trvať zlomok toho, čo v čistom PHP.

V dnešnom tutoriále si vysvetlíme, prečo by sme všeobecne mali používať PHP frameworky, a povieme si, ako Laravel funguje.

Tento kurz je písaný pre aktuálny Laravel, teda verzii 6.x

Prečo používať framework

Framework je ucelený súbor do seba pasujú knižníc. V PHP sa bez kvalitných knižníc u vážnejších projektov nezaobídete. Sú k tomu hneď dva dôvody.

  • Hoci je PHP veľmi vysoký jazyk a obsahuje veľa užitočných funkcií, časom začnete narážať na medzery v jeho štandardných knižniciach. Mnoho dôležitých funkcií v ňom totiž chýba, alebo sa s nimi veľmi zle pracuje. Potom, čo zistíte, že ste si v každom projekte znovu a znovu programovali databázovú triedu, obsluhu formulárov alebo stránkovanie tabuľky, nutne vás napadne si pre tieto základné činnosti vytvoriť jednoduché knižnice.
  • Ak programujete v čistom PHP, zhruba asi 50% kódu je nepotrebný balast. S použitím kvalitných knižníc napíšete aplikáciu za polovicu času as polovičným počtom riadkov. Aplikácia bude ľahko udržiavateľná a jej tvorba vás bude baviť. Nebudete stále vynájsť koleso a riešiť tie isté rutinné veci (ako napr. Ako overiť, či je používateľ administrátor), budete sa naopak venovať vymýšľaní zaujímavých funkcií aplikácie ao tom programovanie predsa je.

Framework si môžete vytvoriť buď vlastné, alebo použiť nejaký hotový, ktorým je práve Laravel.

Potrebné znalosti

Laravel je hlavne veľká sada znovupoužiteľných komponentov, na ktorej je postavený framework pre tvorbu webových aplikácií. Keď programujete v Laravel frameworku, programujete stále v PHP a navyše využívate týchto komponentov, ktoré sú objektovo navrhnuté a stavia na princípoch MVC architektúry. Preto pre použitie Laravel frameworku musíte mať s PHP pokročilé skúsenosti, poznať dobre objektovo orientované programovanie a tiež aspoň základy MVC architektúry. Učiť sa Laravel bez týchto znalostí je zbytočný výdaj energie, pretože neporozumiete jeho princípom a len stratíte svoj čas. Ak nepoznáte OOP alebo MVC, prečítajte si prosím najprv tieto dva miestne kurzy.

Pre snaživcov odporúčam tiež naštudovať bezpečnosť webových aplikácií a návrh softvéru, aby ste následne porozumeli určitým postupom, ktoré sa v tomto frameworku používajú.

Ako Laravel funguje

Na úvod si popíšeme základné termíny a spôsoby, ako Laravel funguje.

MVC

Ako už bolo povedané, Laravel je MVC framework, takže je asi dobré si zopakovať, čo to vlastne znamená.

Aplikácia je zložená z súčasťou troch typov, ktoré sa delia o 3 základné úlohy:

  • riadenie,
  • logiku,
  • výstup.

Len takto rozdelená aplikácie je totiž prehľadná a ľahko rozšíriteľná.

  • Kontrolery (Controllers), riadenie - Kontrolér je časť, s ktorou komunikuje užívateľ. Odovzdá jej parametre a ona mu vráti dáta (napr. HTML stránku). Kontrolér typicky parametre odovzdá modelom, od ktorých získa dáta. Tieto dáta odovzdá pohľadom (šablónam), ktoré dáta začlení do nejakého HTML kódu. Tento HTML kód pošle kontrolér užívateľovi do prehliadača. Funguje teda ako taký prostredník.
  • Modely (Models), logika - Obsahujú logiku aplikácie, ako napr. Prácu s databázou alebo výpočty. Každá dátová entita má väčšinou práve svoj model (užívateľ, článok, komentár, ...).
  • Pohľady (Views), výstup - Obsahujú Blade šablóny (s HTML kódom). Blade je šablónovacích systém, ktorý na rozdiel od ostatných systémov nezakazuje používanie PHP kódu v pohľade, teda neslúži iba na vkladanie premenných do HTML kódu. Blade používa špeciálny syntax, ktorá je potom prevedená na normálny PHP kód, a zároveň tento vygenerovaný pohľad je následne uložený do medzipamäte pre budúce použitie kvôli rýchlejšiemu načítanie (ak nie je daný pohľad modifikovaný).

Routovanie

Než sa užívateľ dostane ku kontroleru, narazí na tzv. Routovanie (slovensky smerovanie). Úlohou tejto vrstvy je podľa URL adresy spoznať, čo používateľ chce, a zavolať mu príslušný kontrolér, ktorý jeho dotaz obslúži.

Ruty môžu byť definované niekoľkými spôsobmi. Požadovanú akciu môže obslúžiť iba jednoduchá nami definovaná anonymný funkcie, a alebo sa o danú akciu postará kontrolér. Laravel za nás môže dokonca vygenerovať akcie, ktoré zrejme bude každá naša dátová entita (článok, užívateľ, kategórie, ...) potrebovať. Tí znalejší už zrejme tuší, že narážam na CRUD (Create, Read, Update, Delete), o tom si ale povieme v seriáli neskôr.

Životný cyklus

Pri použití frameworku si musíte byť istí tým, čo sa vo vnútri odohráva, inak sa z programátora degradujete na experimentátora. Popíšme si životný cyklus aplikácie v Laravel frameworku - teda čo sa stane, keď používateľ zadá do adresného riadku napr .:

obchod.cz/book/harry-potter

Životný cyklus stránky je jednoducho zobrazený obrázkom nižšie. Hneď si ho popíšeme.

Cyklus stránky v Laravel frameworku znázornený diagramom - Laravel framework pre PHP
  1. Ako prvý sa požiadavka dostane k routovanie. Zistí sa, o aký požiadavka sa jedná (a na aký kontrolér a jeho metódu smeruje) a čo všetko sa má skontrolovať a stáť pred odovzdaním dát ďalej pomocou nastavených pravidiel u samotnej ruty.
  2. Požiadavka sa prefiltrujú cez tzv. Middleware triedy, ktoré môžu byť definované už pred samotným routovaním, a alebo až v kontroleru. V našom prípade sa môže jednať o overenie toho, že používateľ je prihlásený a má práva na prezeranie knižiek. Alebo sa len skontroluje, či ak odovzdaný parameter neobsahuje znaky, ktoré tam mať nechceme. Middleware si môžete predstaviť ako takú ochranku, ktorá vás skontroluje pred vstupom dovnútra.
  3. Podľa adresy už framework vie, že chceme niečo s knihami. Preto sa zavolá BookController a jeho metóda show() pre zobrazenie knižky, pretože daná adresa spĺňa nastavenú route book/{book}. Kontroleru sa odovzdá parameter z URL adresy, teda nejaký identifikátor knižky.
  4. Teraz sa zistí, aké všetky parametre metóda akcie vyžaduje. Môžeme napr. Odovzdať špeciálnu triedu pomocou dependency injection, ktoré nám zvaliduje odoslané dáta (formulár). V našom prípade to ale bude len inštancie modelu.
  5. Následne si kontrolér získa inštanciu modelu Book s dátami z databázy pomocou odovzdaného identifikátora "harry-potter".
  6. BookController odovzdá dáta z modelu pohľadu (šablóne).
  7. Šablóna obsahuje HTML stránku pre zobrazenie knižky a v nej nejakú Blade syntax aj pre vypísanie dát knižky. Pomocou Blade enginu sa vygeneruje výsledná HTML stránka.
  8. BookController dostane späť zo šablóny výslednej HTML a to pošle užívateľovi ako odpoveď.
  9. Používateľovi sa v prehliadači zobrazí HTML stránka a vôbec netuší o tom všetkom, čo sme si tu teraz popísali :)
Ak teraz niektorým krokom plne nerozumiete, nezúfajte. Všetko si v kurze postupne vysvetlíme. Ide len o to, aby sme pochopili, čo všetko sa odohráva na pozadí a ako zložitý môže jeden požiadavku byť. Pri správnom používaní komponentov frameworku môže parameter pokojne prejsť desiatky tried, než sa vôbec dostane ku kontroleru.

Čo by ste ešte mali vedieť

  • Každý kontrolér má typicky hneď niekoľko svojich šablón pre rôzne metódy (detail, pridanie, zoznam, ...).
  • Vo väčšine prípadov každý model zastupuje jednu databázovú tabuľku. Každý záznam v tabuľke je potom inštancia modelu tejto tabuľky s odovzdanými hodnotami z databázy.
  • Každá časť logiky má v Laravel frameworku svoje miesto. Už sme si trochu načrtli middleware triedy, rovnako tak môžeme mať triedu pre validáciu odoslaných dát (napr. Cez formulár), triedu pre kontrolovanie práv atď. O väčšine týchto tried si povieme v priebehu seriálu, všetky sú ale detailne popísané v oficiálnej dokumentácii.

To by bolo do úvodu všetko. Nabudúce, v lekcii Inštalácia Laravel a sprevádzkovanie projektu , si sprevádzkujeme prvý projekt v Laravel frameworku.


 

Všetky články v sekcii
Laravel framework pre PHP
Preskočiť článok
(neodporúčame)
Inštalácia Laravel a sprevádzkovanie projektu
Článok pre vás napísal Jan Lupčík
Avatar
Užívateľské hodnotenie:
4 hlasov
Autor se primárně věnuje vývoji webových stránek a aplikací v PHP (framework Laravel) a je jedním z herních vývojářů komunitní modifikace TruckersMP.
Aktivity