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

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

 

CakePHP - základní kostra

Google       Google       5. 7. 2007       18 374×

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 Nový IT hráč na českém trhu

Nový IT hráč na českém trhu

V roce 2015 otevřela v Praze na Pankráci v budově City Tower své kanceláře společnost EPAM Systems (NYSE:EPAM), jejíž centrála se nachází v USA. Společnost byla založená v roce 1993 a od té doby prošla velkým vývojem a stále roste.

Reklama
Reklama
Obrázek ke článku České Radiokomunikace opět hledají nejlepší nápady pro internet věcí

České Radiokomunikace opět hledají nejlepší nápady pro internet věcí

České Radiokomunikace (CRA) pořádají druhý ročník CRA IoT Hackathonů. Zájemci z řad vývojářů a fanoušků moderních technologií mohou změřit své síly a během jediného dne sestrojit co nejzajímavější funkční prototyp zařízení, které bude komunikovat prostřednictvím sítě LoRa. CRA IoT Hackathony se letos uskuteční ve dvou fázích, na jaře a na podzim, v různých městech České republiky. Jarní běh se odstartuje 31. března v Brně a 7. dubna v Praze.

Obrázek ke článku Cloud computing je využíván stále intenzivněji

Cloud computing je využíván stále intenzivněji

Využívání cloud computingu nabývá na intenzitě. Jen v letošním roce vzroste podle analytiků trh se službami veřejného cloudu o 18 %, přičemž o téměř 37 % vzrostou služby typu IaaS. Růst o více než pětinu pak čeká služby poskytování softwaru formou služby, tedy SaaS. Aktuálním trendům v oblasti využívání cloudu se bude věnovat konference Cloud computing v praxi, která se koná 23. března. 2017 v pražském Kongresovém centru Vavruška na Karlově náměstí 5.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý