3. diel - Prvé aplikácie v Symfony
Vitajte u ďalšej lekcie online kurzu o tvorbe webových aplikácií v PHP frameworku Symfony. V tomto tutoriále by som chcel prakticky nadviazať na lekciu predchádzajúce, Inštalácia Symfony a IDE . Ukážeme si tvorbu prvý jednoduché aplikácie a začneme s implementáciou jej modelu. Môžete teda pokojne pokračovať v projekte z minula alebo si vytvoriť nový, samozrejme so všetkými náležitosťami.
Voľba aplikácie
Výber vhodnej aplikácie, na ktoré by sme si mohli demonštrovať všetko potrebné, nebol úplne jednoduchý. Nakoniec sa víťazom stala jednoduchá kalkulačka, ktorej screenshot vidíte nižšie. Takže keď už vieme v čom a čo budeme robiť, tak hurá do práce!
Postupy implementácie MVC
Teraz, keď už máme všetko pripravené, môžeme začať programovať samotnú kalkulačku. Vyvstáva dôležitá otázka a to, odkiaľ začať? Za seba môžem odporučiť 3 spôsoby konania:
- Postup od Pohľadu - V tomto postupe sa najskôr zamyslíme, čo chceme vlastne na danej webovej stránke zobraziť. Podľa toho si navrhneme šablónu (view). Aby sme ju mohli vyplniť potrebnými dátami, navrhneme následne kontrolér, ktorý potrebné dáta odovzdáva do šablóny. Ten ale musí tieto dáta získať z modelu, takže nakoniec naprogramuje onen model, ktorý táto potrebné dáta dodáva napr. Z databázy.
- Postup od Modelu - Tu je postup v podstate opačný. Najskôr sa opäť zamyslíme aké dáta budeme potrebovať zobraziť. K získaniu týchto dát si vytvoríme model. Ďalej potrebujeme tieto dáta spracovať a odovzdať do šablóny ak tomu si opäť urobíme potrebný kontrolér. Nakoniec navrhneme šablónu, kde sa získané dáta zobrazia do podoby webovej stránky.
- - Kombinácia predchádzajúcich - Tento postup si berie z každého trochu. Vytvárame postupne šablóny aj modely a potom sa ich snažíme pomocou kontrolerov lepiť dohromady. Toto je asi najpoužívanejší metóda, ktorá ponúka tú výhodu, že môžeme striedavo postupovať z oboch smerov vývoja, čo je v praxi asi najpoužiteľnejší. Len musí človek dať pozor, aby sa v tom nestratil, zachoval rozdelenie funkčnosti modelov a kontrolerov a nelepil dohromady škaredé konštrukcie, ktoré mu skrátka vyplynuli stretom modelu a šablóny.
Ja v tomto prípade zvolím postup číslo dva, pretože sa domnievam, že sa pre našu kalkulačku viac hodí. Takže začneme pekne od Modelu.
Model
Src / Model / Calculator.php
Povedzme, že naša kalkulačka bude mať 4 základné operácie, tj.
Sčítanie, odčítanie, násobenie a delenie. Tieto operácie umiestnime do
modelu, pretože nám vracajú výsledky, tj. Naše dáta. Vytvoríme si teda
zložku src/Model/
, kam umiestnime súbor
Calculator.php
s našou triedou modelu Calculator
,
ktorá definuje naše 4 operácie a vyzerá nasledovne:
<?php namespace App\Model; /** * Model operací kalkulačky. * @package App\Model */ class Calculator { /** * Sečte daná čísla a vrátí výsledek. * @param int $x první číslo * @param int $y druhé číslo * @return int výsledek po sčítání */ public function add(int $x, int $y): int { return $x + $y; } /** * Odečte druhé číslo od prvního a vrátí výsledek. * @param int $x první číslo * @param int $y druhé číslo * @return int výsledek po odčítání */ public function subtract(int $x, int $y): int { return $x - $y; } /** * Vynásobí daná čísla a vrátí výsledek. * @param int $x první číslo * @param int $y druhé číslo * @return int výsledek po násobení */ public function multiply(int $x, int $y): int { return $x * $y; } /** * Vydělí první číslo druhým bezezbytku a vrátí výsledek. * @param int $x první číslo * @param int $y druhé číslo; nesmí být 0 * @return int výsledek po dělení bezezbytku */ public function divide(int $x, int $y): int { return round($x / $y); } }
Môžete si všimnúť, že keďže som sa rozhodol vykonávať operácie v celých číslach, tak chcem túto vlastnosť zachovať aj u delenie, teda výsledok zaokrúhľuje na celé čísla. Ďalej si bystrejší z vás určite všimli, že nie je ošetrené delenie nulou. To však nie je chyba a my sa k tomu ešte vrátime.
Z dnešnej lekcie už je to ale všetko, takže na kontrolér, šablóny a ďalšie prvky sa pozrieme v lekcii budúci, Riešené úlohy k 1.-4. lekciu frameworku Symfony pre PHP
V nasledujúcom cvičení, Riešené úlohy k 1.-4. lekciu frameworku Symfony pre PHP, si precvičíme nadobudnuté skúsenosti z predchádzajúcich lekcií.