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 (odkaz odstraněn) – 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.