7. díl - CMS v Nette a Doctrine 2 - Vytváření článků

PHP Nette Framework Doctrine CMS v Nette a Doctrine 2 - Vytváření článků

V minulém tutoriálu o programování CMS v Nette a Doctrine 2 jsme se věnovali vytváření kategorií článků a refaktoringu. V tomto díle si ukážeme, co jsou to pomocné třídy pro skládání DQL dotazů, jak fungují a nakonec přidáme možnost vytváření samotných článků.

Pomocné třídy pro skládání DQL dotazů

Základem je třída Kdyby\Doctrine\QueryObject, od kterého budou všechny naše třídy dědit. Všechny tyto třídy poté musí obsahovat metodu doCreateQuery(), která se postará o složení dotazu a vrácení objektu QueryBuilder. Díky tomu bude možné repositářům předávat objekt těchto tříd, přidávat jim různé filtry či další selecty a zefektivnit tak DQL dotazy. Příklad:

$query = new ArticlesListQuery();
$query->withAuthors()  // přidá jména autorů
        ->onlyReleased()  // vybere pouze schválené články
        ->latest(5);  // vybere posledních pět

$result = $em->getRepository(Article::class)
        ->fetch($query);  // vrátí výsledek

Takto nějak budou moci vypadat veškeré naše dotazy. Nebude třeba psát pro každý trochu odlišný případ novou metodu a nový dotaz, jednoduše si vytvoříme jeden základní a dle potřeby mu budeme říkat co dalšího má vybrat, jaké další podmínky má použít atd.


 

...konec náhledu článku...

Prémiový článek

Prémiový článek

Na itnetwork.cz se nachází největší a nejucelenější česká databáze s výukovými články, jejímž cílem je umožnit kvalitní vzdělání v oblasti IT úplně každému. Měsíčně zobrazíme k milionu článků a sklidíme desítky děkovných emailů, kde nám sdělujete, že jsme vám pomohli k lepšímu zaměstnání nebo vzdělání.

Ačkoli se snažíme držet většinu obsahu úplně zadarmo, udržovat síť v provozu a aktuální stojí obrovské úsilí. Proto je nějaký obsah, jako cvičení nebo odbornější články, přístupný pouze za body. Nebojte, nestojí to skoro nic :)

Popis článku

Požadovaný článek má následující obsah:

V tutoriálu využijeme pomocné třídy pro skládání DQL dotazů a přidáme možnost vytvářet samotné články. Pokračujeme v CMS v Nette frameworku a Doctrine 2.
Pro přístup k článku potřebuješ 24 bodů
Na svém účtu máš aktuálně 0 bodů
24 bodů získáš za přidání svého článku na síť nebo za 60 Kč

Před koupí tohoto článku je třeba koupit předchozí díl

Koupí článku k němu získáš neomezený přístup a to napořád. Posuneš své znalosti zas kousek dopředu a zároveň nám pomůžeš udržovat celý projekt při životě a pomáhat vám tak k lepší budoucnosti.

Obsah článku spadá pod licenci Premium III, koupí článku souhlasíš se smluvními podmínkami.

Body získáš, když podpoříš naši síť. To můžeš udělat buď zasláním symbolické částky na podporu provozu nebo přidáním obsahu na síť.

Dobít body můžeš okamžitě např.:

Kartou SMS Převodem
Kartou SMS Převodem

  Aktivity (2)

Článek pro vás napsal Martin Konečný (pavelco1998)
Avatar
Autor se o IT moc nezajímá, raději by se věnoval speciálním jednotkám jako jsou SEALs nebo SAS. Když už to ale musí být něco z IT, tak tvorba web. aplikací v PHP.