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

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 NEWTON Media prohledá 200  milionů mediálních zpráv během sekund díky Cisco UCS

NEWTON Media prohledá 200 milionů mediálních zpráv během sekund díky Cisco UCS

Česká společnost NEWTON Media provozuje největší archiv mediálních zpráv ve střední a východní Evropě. Mezi její zákazníky patří například ministerstva, evropské instituce nebo komerční firmy z nejrůznějších oborů. NEWTON Media rozesílá svým zákazníkům každý den monitoring médií podle nastavených klíčových slov a nabízí online službu, kde lze vyhledat mediální výstupy v plném znění od roku 1996.

Reklama
Reklama
Obrázek ke článku Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Touto roční dobou, kdy je zem pokrytá barevným listím a prsty křehnou v mrazivých ránech, se obvykle těšíme na zbrusu novou verzi RAD Studia. Letos si však ale budeme muset počkat na Godzillu a Linux až do jara. Vezměme tedy za vděk alespoň updatem 2 a jelikož dle vyjádření pánů z Embarcadero se budou nové věci objevovat průběžně, pojďme se na to tedy podívat.

Obrázek ke článku Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Stále rostoucí zájem o cloudové služby i maximální důraz na pružnost, spolehlivost a bezpečnost IT vedou k výrazným inovacím v datových centrech. V infrastruktuře datových center hraje stále významnější roli software a stále častěji se lze setkat s hybridními přístupy k jejich budování i provozu.

Obrázek ke článku Konference: Mobilní technologie mají velký potenciál pro byznys

Konference: Mobilní technologie mají velký potenciál pro byznys

Firmy by se podle analytiků společnosti Gartner měly  rychle přizpůsobit skutečnosti, že mobilní technologie už zdaleka nejsou horkou novinkou, ale standardní součástí byznysu. I přesto - nebo možná právě proto - tu nabízejí velký potenciál. Kde tedy jsou ty největší příležitosti? I tomu se bude věnovat již čtvrtý ročník úspěšné konference Mobilní řešení pro business.

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 © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý