CakePHP - základní kostra
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama

CakePHP - základní kostraCakePHP - základní kostra

 

CakePHP - základní kostra

Google       Google       5. 7. 2007       19 633×

Pokusíme se vytvořit primitivní webovou aplikaci pracující s databází. Uvidíte, jak je to s Cakem jednoduché.

Reklama
Reklama

Na úvod se řekněme něco o takzvaném routingu. Cake, jako každý jiné framework, nám nejen že url rozparsuje, ale také nám je pomůže sestavit. Sestavení i parsování na sobě vzájemně souvisí, a této oblasti se říká routing. Základní parsování url v Caku vypadá následně:

/controller/action/arg1/arg2/.../argn

Url je rozděleno podle lomítek, první fragment je považován za jméno controlleru, druhý za jeho metodu, a zbytek za argumenty metody. Metodě se někdy také říká action.

Návrh aplikace

Zásadní je návrh aplikace. Každý model reprezentuje jednu tabulku. Je běžné, že každý model má i svůj vlastní controller, který sprostředkovává ony požadavky a operace nad modelem.

Controller třída, která sdružuje skupinu souvisejících akcí (operací) nad jednou tabulkou.

Pomocí Caku můžete routing velmi efektivně "ohnout". Otom ale až někdy příště.

Konfigurace

Než začneme vyvíjet aplikaci, je třeba zprovoznit připojení k databízi. Editujte soubor /app/config/database.php.default a uložte jej jako database.php.

<?php
class DATABASE_CONFIG
{

    var $default = array(
        'driver' => 'mysql',
        'host' => 'localhost',
        'login' => 'root',
        'password' => '',
        'database' => 'test',
        'prefix' => ''
    );

}
?>

Cake se automaticky připojení pomocí nastavení v proměnné $default. Můžete definovat i více připojení, nebo automaticky nastavit správné připojení pro produkční prostředí. Ale o tom opět až příště. Nyní vyplňte vlastní nastavení. Driver závisí na vaší databázi. Většinou postačí nechat mysql.

Jestliže se vše povedlo, po zadání url vaší aplikace do prohlížeče uvidíte stránku podobnou téhle:

Praktická ukázka

Pro dnešní ukázku budeme potřebovat nějakou tabulku. Vytvořte si ji s takovouto strukturou:

CREATE TABLE `pages` (
    `id` tinyint(10) unsigned NOT NULL AUTO_INCREMENT,
    `url` varchar(100) CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL,
    `title` varchar(100) CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL,
    `content` longtext CHARACTER SET utf8 COLLATE utf8_czech_ci,
    `modified` int(11) unsigned NOT NULL DEFAULT '0',
    `heavy` smallint(3) NOT NULL DEFAULT '0',
    PRIMARY KEY (`id`,`url`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stránky';

Scaffolding - lešení

V rané fázi aplikace probíhají ještě časté změny ve struktuře tabulky, respektive databáze. A proto nám Cake nabízí pomocnou ruku. Abychom nemuseli stále přepisovat aplikaci kvůli změnám v databázi, máme k dispozici takzvané lešení. To aktivujeme v controlleru. Ten ale musíme nejprve vytvořit.

Soubor /app/controllers/pages_controller.php:
<?php

class PagesController extends AppController
{
    /*
        jméno třídy: množné číslo názvu tabulky + 'Controller'
        záleží na velikosti písmen
    */

    // aktivujeme lešení
    public $scaffold;

}

?>

Dále je třeba vytvoři model /app/models/page.php:

<?php

class Page extends AppModel
{
    /*
        jméno třídy: jednotné číslo názvu tabulky
        tabulka musí být v množném čísle!!!
        záleží na velikosti písmen
    */

}

?>

Díky členské proměnné $scaffold; controlleru Cake za nás automaticky vygeneruje stránky formuláře pro editaci, přidání, mazání a zobrazení.

Nyní je třeba přejít na URL adresu /pages (např http://localhost/app/pages), protože ještě neumíme nastavit routing, a Cake neví, jaký controller by jsme chtěli zobrazit, když mu bude první fragment chybět.

Nebojte se výpisu SQL dole, to uvidíme jen při ladění. Pořádně si vše vyzkoušejte, těším se u dalšího dílu..

×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.

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ý