Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

1. diel - Úvod do Symfony frameworku pre PHP

Vitajte u prvej lekcie online kurzu o tvorbe webových aplikácií v PHP frameworku Symfony. Symfony je kompletný framework pre PHP, tvorený sadou PHP komponentov, ktorá výrazne zjednodušuje tvorbu webových aplikácií. Framework je kvalitne objektovo navrhnutý a svetovo je veľmi rozšírený. Fungujú na ňom veľké i malé projekty, môžete sa pozrieť na ich zoznam a tiež stojí za zmienku, že niektoré jeho komponenty využívajú aj ďalšie nástroje, napr. Doctrine, Composer, Codeception alebo dokonca redakčné systémy ako Drupal, Joomla alebo PrestaShop. Keď ho budete vedieť, tak dobrú prácu vždy nájdete.

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

Tento kurz je potom písaný pre aktuálnu Symfony, teda verziu 4.1.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é komponenty.
  • Z praktických skúseností vám môžem s kľudom povedať, že ak programujete v čistom PHP, tak je asi 50% vášho kódu nepotrebný balast. S použitím kvalitných komponentov 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í tej danej aplikácie ao tom programovanie predsa je.

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

Čo potrebujete k tomu, aby ste mohli Symfony používať

Ako už bolo povedané v úvode, Symfony je hlavne veľká sada znovupoužiteľných komponentov, na ktorej je postavený framework pre tvorbu webový aplikácií. Keď programujete v Symfony, 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 Symfony 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 Symfony 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.

Ako Symfony funguje

V jednoduchosti si popíšme základné technológie a termíny, ktoré sa v seriáli budú ďalej objavovať.

MVC

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

Aplikácia stojí na častiach troch typov, ktoré sa v aplikácii 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 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 svoj model (užívateľ, článok, komentár, ...).
  • Pohľady (Views), výstup - Obsahujú Twig šablóny s HTML kódom. Twig je šablónovacích systém, ktorý do HTML šablón umožňuje vkladať dáta z PHP pomocou špeciálnych značiek.

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. V Symfony existuje niekoľko možností, ako zariadiť routovanie tzv. "Pekných" URL, najčastejšie sa potom využívajú anotácie priamo v jednotlivých metódach kontrolerov.

Ž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, možno kúzelníka a iste by sa dalo vymyslieť niekoľko ďalších profesií. Popíšme si životný cyklus aplikácie v Symfony - teda čo sa stane, keď používateľ zadá do adresného riadku napr .:

obchod.cz/book/harry-potter

Životný cyklus stránky je znázornený nasledujúcim diagramom. Hneď si ho aj popíšeme.

Životný cyklus aplikácie v Symfony - Základy frameworku Symfony pre PHP
  1. Ako prvý sa požiadavka dostane k routovanie. Tu sa podľa adresy zistí, že chceme niečo s knihami a preto sa zavolá BookController a odovzdá sa mu zvyšok URL.
  2. BookController sa pozrie do parametrov, čo sa po ňom chce a zistí, že používateľ chce vypísať knihy s názvom "harry potter". Získa si teda BookModel, ktorému oznámi, že chce tieto knihy. BookController vykonáva podľa danej URL príslušnú metódu triedy, v tomto prípade zobrazenia zoznamu kníh. Rovnako tak ale môže napr. Knihu pridať alebo odstrániť pomocou iných v ňom obsiahnutých metód.
  3. BookModel dostane v parametri názov kníh, ktoré získa z databázy a vráti.
  4. BookController získa dáta od modelu a tieto dáta odovzdá pohľadu (šablóne).
  5. Šablóna obsahuje HTML stránku pre zoznam kníh a v nej nejaké Twig značky, do ktorých sa tieto dáta automaticky doplní. Vloženie týchto dát obstará automaticky Twig engine.
  6. BookController dostane späť zo šablóny výslednej HTML a to pošle užívateľovi ako odpoveď.
  7. 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. :)

Pokojne si diagram niekoľkokrát prejdite, aby ste si boli v celom princípe istí.

Čo by ste ešte mali vedieť

  • Každý kontrolér má typicky niekoľko svojich šablón pre rôzne metódy (detail, pridanie, zoznam, ...).
  • Súvisiace modely a kontrolery (so šablónami) sa združujú do tzv. Bundlov. Bundle je taký plugin reprezentujúci danú komponent pre určitú funkcionalitu (napr. FrameworkBundle, TwigBundle, DebugBundle atď.)
  • Všetky funkcionalita aplikácií v Symfony pochádza práve z jednotlivých bundlov (komponentov), teda aj naše budúce aplikácie budú tvoriť samostatný bundle s vyššie popísanou MVC architektúrou vnútri.

To by bolo do úvodu všetko. Nabudúce, v lekcii Inštalácia Symfony a IDE , si sprevádzkujeme prvý projekt v Symfony :)


 

Všetky články v sekcii
Základy frameworku Symfony pre PHP
Preskočiť článok
(neodporúčame)
Inštalácia Symfony a IDE
Článok pre vás napísal Jindřich Máca
Avatar
Užívateľské hodnotenie:
1 hlasov
Autor se věnuje převážně webovým technologiím, ale má velkou zálibu ve všem vědeckém, nejen ze světa IT. :-)
Aktivity