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

CakePHP - trochu nutné teorieCakePHP - trochu nutné teorie

 
Hledat
Moderní platforma pro vytvoření vašeho nového webu – Wix.com.
Nyní už můžete mít web zdarma.
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno

CakePHP - trochu nutné teorie

Google       Google       30. 1. 2008       14 461×

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.

Reklama
Reklama

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 Konference: Kvalitní informační systém roste spolu se svými uživateli

Konference: Kvalitní informační systém roste spolu se svými uživateli

Informační systémy, které rostou spolu s požadavky svých uživatelů, efektivní uchování důležitých dokumentů nebo moderní uživatelská rozhraní, která maximálně zjednodušují práci s informacemi - to je jen několik z řady aktuálních trendů v oblasti podnikových informačních systémů, kterým se bude věnovat konference Firemní informační systémy, která se koná 31.5.2018 v pražském Kongresovém centru Vavruška na Karlově náměstí.

Reklama
Reklama
Obrázek ke článku Bezrealitky.cz na novém webu rychleji propojí vážné zájemce s majiteli nemovitostí

Bezrealitky.cz na novém webu rychleji propojí vážné zájemce s majiteli nemovitostí

Největší platforma pro přímý prodej a pronájem domů a bytů Bezrealitky.cz představila novou podobu svého portálu. Redesign zásadně zjednodušuje všechny transakce, mění způsob, jakým zájemci o bydlení komunikují s majiteli nemovitostí, přináší nejpřesnější filtrování nabídek na trhu, ale také umožňuje prověřovat důvěryhodnost zájemců. 

Obrázek ke článku Samba.ai: Personalizační nástroje hlásí připravenost na GDPR

Samba.ai: Personalizační nástroje hlásí připravenost na GDPR

Do ostrého nasazení nařízení GDPR, které upravuje nakládání s osobními údaji, zbývá pár dní, a vzbuzuje vrásky u řady provozovatelů služeb, které pracují s profilací návštěvníků na stránkách a personalizací obsahu. Český personalizační nástroj Samba.ai(dříve Yottly) zajišťující personalizaci webu a prediktivní automatizaci email marketingu je však slovy svého CEO Davida Vyskočila na GDPR plně připraveno. 

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