CakePHP - trochu nutné teorie
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

CakePHP - trochu nutné teorieCakePHP - trochu nutné teorie

 

CakePHP - trochu nutné teorie

Google       Google       30. 1. 2008       17 280×

Náš poslední díl (pravda, už je tomu půl roku, co byl vydán) skončil u vypisování seznamu a jednotlivých záznamů z DB. K pochopení další látky je nutné si trošku více povědět o principech fungování Caku. Povíme si pořádně o hleperech a modelech.

Cake vám nabídne pomocnou ruku tam, kde se dá, a to samozřejmě i při vytváření formulářů. Pomocí helperů jednoduše vypíšete formulářové prvky a také je následně jednoduše uložíte.

Helpery

Jak již bylo řešeno, helpery jsou tu proto, aby nám usnadnily práci. V kontextu Caku mluvíme o pomocných třídách, které nám pomáhají generovat xHTML kód. Helpery jednoduše aktivujeme jejich deklarací v proměnné $helpers:

class ExampleController extends AppController
{

    public $helpers = array('Form', 'Html', 'Javascript');

    public function index()
    {
    }

}

Tímto nastavením jsme nahráli do view 3 helepry, a to Form, Html a Javascript. Prakticky to znamená, že nyní ve view jsou dostupné nové tři proměnné, stejně pojmenované. Přesněji, máme v oněch proměnných vytvořené objekty jednotlivých helperů:

$form->foo();
$html->foo();
$javascript->foo();

Nyní již můžeme normálně pracovat s objekty, volat jejich metody apod.

Ve výchozím nastavení se automaticky nahrává helper Html. Pokud budete potřebovat další helpery, tedy definovat znovu proměnnou $helpers, nezapomeňte, že seznam načítaných helperů přepisujete – ne přidáváte.

Jestliže nechcete nahrávat helpery žádné, uveďte prázdné pole.

Helper HTML

Do verze 1.2 se tato třída starala také o vytváření formulářů. Velmi dobrým krokem bylo oddělení této problematiky do samostatné třídy. Nyní v HtmlHelperu zbyly už jen metody pro základní html elementy.

Příklady použití:

<?php echo $html->docType('xhtml-strict') ?>
<html>
    <head>
        <?php echo $html->charset('utf-8') ?>
    </head>
    <!-- .... -->
</html>

Myslím, že situace, kdy tyto pomocníky využijete, jsou již jasné. Vřele doporučuji dále studovat pomocí API, u HtmlHelepru konkrétně na adrese http://api.cakephp.org/1.2.

Helper Form

Snad nejpoužívanějším helperem je třída FormHelper. Díky ní je vytváření formulářů mnohem snazší. Výhodou těchto Helperů je samozřejmě to, že vás nikdo nenutí je používat. Výhody (i nevýhody) si ale nakonec jistě zjistíte sami a budete používat jen to, co se hodí.

<?php
echo $form->text('User.first_name');
//<input name="data[User][first_name]" value="" type="text" />
?>

Zde jsme využili metody text, která nám vygeneruje základní input. Rovnou si všimněme předaného parametru. Cake pracuje u všech sloupců také se jménem tabulky. 'User.first_name' tedy znamená, že máme na mysli sloupce first_name z tabulky users, ke které je vázána modelová třída User.

Nyní ale přichází Cake s mnohem zajímavější nabídkou, s automatickým rozpoznáním typu vstupního pole podle typu databázového sloupce. Samozřejmě, někdy si prostě chcete typ vstupního pole určit sami, ale pro zbytek případů je tu metoda input().

<?php
// predpoklad: sloupec first_name je typu VARCHAR(254)

echo $form->input('User.first_name')
//<input name="data[User][first_name]" value="" type="text" />
?>

Výhoda tohoto přístupu je taková, že pokud se např. rozhodnete umožnit zadávat uživateli delší text, a změníte typ sloupce na TEXT, automaticky za vás Cake vygeneruje prvek textarea.

Opět doporučuji případné studium API manuálu pro třídu FormHelper. Problematice vytváření formulářů se budeme podrobně věnovat v příštím díle, takže pokud jste pochopili, ale chcete více, počkejte si na příští díl.

Formát dat vrácených FormHelperem

Helpery za nás generují html tagy, ale, jak jste si mohli všimnout v dnešních ukázkách, také vytvářejí speciální název vstupních tagů: data[User][first_name]. Cake tedy od PHP získá výsledky již ve formátu pole a tak je vám taky nabídne.

Výhoda tohoto formátu je ta, že s ním pracuje Model, když bude vaše data ukládat. Více opět až příště.


Dnes jsme si řekli lehký úvod k helperům, formulářům. Příště se na ně vrhneme přímo po hlavě a hlavně prakticky – dokončíme naši CRUD aplikaci.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

4 názory  —  4 nové  
Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Jan ŠkrášekHonza pracuje jako webdeveloper, věnuje se vývoji Nette\Database a Nextras komponentám. Mnoho času věnuje komunitnímu portálu signály.cz. Honza je taky fanouškem XML technologií.
Web     Twitter    

Nové články

Obrázek ke článku Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý