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       18 836×

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

Reklama
Reklama
Obrázek ke článku Blockchain & Bitcoin konference

Blockchain & Bitcoin konference

V pátek 19. 5. 2017 se v pražském konferenčním centru Andel’s konala Blockchain & Bitcoin konference. Řada odborníků a podnikatelů v oboru blockchainu a kryptoměn představila možnosti budoucího směřování tohoto oboru. Speakeři většinou rusky mluvící provenience prezentovali řešení svých firem založená na technologii blockchainu.

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ý