Pokud už nějakou dobu vyvíjíte php aplikace, tak jste si již jistě někdy řekli, že by to šlo určitě nějak zjednodušit. Akce které musíte ošetrovat pořád dokola by šly zjednodušit a zpřehlednit – což by vám dalo více možností věnovat se samotnému vývoji.
A od toho tu jsou tzv. frameworky. Poté, co David Grudl začal publikovat konkrétnější informace o svém připravovaném Nette, se s tímto slovem na Internetu jakoby “roztrhl pytel”.
Nechci tu teď ale mluvit o Nette – chci mluvit o php frameworku, který používám v současnosti já. Jedná se o velice čerstvý projekt s rozrůstající se komunitou – Code Igniter. Tento framework se nechce stát žádným komplexním php 5 řešením pro extrémně velké projekty. Ne. Jedná se “jen” o několik knihoven funkcí a obsluhu požadavků. Díky tomu nepotřebuje Code Igniter téměř žádné nastavování při instalaci, funguje na každém webhostingu s php 4 a co je hlavní – je snadno rozšiřitelný.
Plno nekomerčních řešení má tu krutou nevýhodu v tom, že chybí dokumentace. Vy pak musíte pátrat, jak která funkce funguje a co vůbec dělá. To není případ Code Igniteru – zde je kód transparentní, dobře okomentovaný a dokumentace je naprosto brilantní.
Jak začít s Code Igniterem?
I když jste nikdy žádný framework nezkoušeli, tak se Code Igniteru nemusíte bát. Já dokonce znám případy, kdy se lidé učí php tak, že rovnou začnou s Code Igniterem.
Nejlépe asi uděláte, když se kouknete na dvě ukázková videa – ta vám ukáží, jak se v praxi Code Igniter používá. Pak si jen stačí prohlédnout obsáhlou dokumentaci a začít zkoušet… A pokud by nastal problém? K dispozici je fórum do kterého příspívá nejen autor projektu (Rick Ellis) a stále se rozrůstající komunita, ale i já sám.
Lákadlo aneb troška praxe s Code Igniterem…
Chcete uživateli umožnit nahrát obrázek na server (pomocí formuláře)?
$config['upload_path'] = ‘./uploads/’;
$config['allowed_types'] = ‘gif|jpg|png’;
$config['max_size'] = ‘100′;
$config['max_width'] = ‘1024′;
$config['max_height'] = ‘768′;
$this->upload->initialize($config);
Komentář myslím není potřeba…
A co dál s nahraným obrázkem? Co takhle vytvořit jeho náhled pomocí GD…?
$config['image_library'] = 'GD2';
$config['source_image'] = '/path/to/image/mypic.jpg';
$config['create_thumb'] = TRUE;
$config['maintain_ratio'] = TRUE;
$config['width'] = 75;
$config['height'] = 50;
$this->image_lib->initialize($config);
$this->image_lib->resize();
Jak Code Igniter obsluhuje pořadavky?
Při tvorbě aplikace nad Code Igniterem budete pracovat hlavně s obsahem dvou složek – Controllers a Views. Složka Controllers obsahuje php soubory, které generují stránky – dotazy pro databázi, volání funkcí a tříd. Složka Views obsahuje šablony (jako šablonovací jazyk je použito PHP).
V základním nastavení se aplikace chová takto: návštěvník zadá do adresního řádku třeba example.com/produkty/show/35 –> tím se zavolá funkce show, která je ve třídě Produkty (která je definovaná v Controlleru produkty.php). Aplikaci je samozřejmě předáno i ono číslo, které můžeme dále používat třeba v dotazu na databázi.
Je to naprosto pochopitelné a snadné.
Toho slova “show” se v nastavení můžete snadno zbavit – adresy jdou v konfiguraci “přeroutovat”.
Závěr
Nechci vyvolávat žádné diskuse o tom, jestli je lepší ten nebo ten framework, nebo jestli je vůbec dobré nějaký framework používat. Pouze bych vám chtěl představit tento nový framework, který já sám úspěšně používám.
28.03.06 v 21:57:33 |
nejlepsi FW je ten, ktery si sami napiseme.. Vivat Bobik! hhaha… nene.. moc pekny clanek…
28.03.06 v 22:06:48 |
abysser: Tak moc bych si já nevěřil ;-) Tohle má hlavně výhodu, že se to vyvíjí samo – bez mé pomoci se vytváří nové funkce a třídy, které potom mohu používat ;-)
02.04.06 v 18:51:50 |
Před nějakým časem jsem se rozhodl podívat se po nějakým tom frameworku. Vše mi přislo zbytečně šložité, pak jsem narazil na Nette a zajasal jsem. Smula je ze to jeste chvili potrva, nez ho budu moct pouzit a pritom bych to chtěl použít už teď.
Proto dík za zajímavý projekt.
02.04.06 v 20:09:09 |
goophy: Já jsem Nette ještě nějaka moc nezkoumal (ty články na La Trine jsem jen zběžně prolétl), ale vypadá to velice dobře – na mě až moc :-) Proto používám Code Igniter…
11.12.06 v 8:15:01 |
Další super framework pro PHP je CakePHP. Mohu jen doporučit, ale Code Igniter se mi také celkem líbí, nedávno jsem na něj narazil a říkal si co mám spíš používat jestli CI nebo CP.
11.12.06 v 14:47:21 |
Petr Vytlačil: Při rozhodování může pomoci tato rozsáhlá diskuse: http://www.codeigniter.com/forums/viewthread/750/
09.12.07 v 14:36:53 |
Petr Vytlačil: U cakePHP se mi nelíbilo, že jsou dvě simultanní a dost odlišné verze, což se ani po půl roce nezměnilo. Nakonec jsem se rozhodl při vývoji pro CI, protože má slušnou třídu pro správu uživatelů a dobrou škálovatelnost. Když třeba potřebuji jednoduché dotazy na DB, tak nemusím nutně vytvářet Model, ale stačí vše zahrnout do Controllelu. Takže je to spíš CV než MCV :-)