Poslední dobou mě KOHANA framework překvapuje a udivuje čím dál víc. Samozřejmě v tom správném a dobrém slova smyslu. Musím zmínit hned dvě maličkosti, které jsou pro mě ale dost zásadní. Dlužno dodat, že taková milá překvapení samozřejmě plynou z nedostatečného čtení dokumentace.
Překvapení první – kontrola ajax requestu
V první trojkové verzi narozdíl od 2.3 verze chyběla metoda kontroly, zda je dotaz ajaxového původu nebo není. Oželel jsem ji a navykl si používat vlastní. Pak mě to ale dost přestalo bavit, když jsem zjistil, kolik takových věcí jsem si nad vlastní KOHANou ještě musel dopsat a začal studovat dokumentaci. A ejhle, KOHANA poskočila o dvě verze a já teprve teď metodu $request->is_ajax() opět objevil.
Překvapení druhé – Validační a Upload třída
O co větší byla moje radost, když jsem objevil krásu vestavěného nahrávání a validace souborů! Po kratším studiu dokumentace jsem přišel na to, že tyto třídy jsou v KOHANA od začátku a napříč verzemi se v zásadě nezměnily. Tedy opět jen moje lenost studia dokumentace. Přikládám alespoň kousek kódu jak validovat a následně zpracovat nahrávané soubory.
Formulář:
Metoda, která zpracovává nahrávaný soubor pak funguje takto:
$array = Validation::factory($_FILES);
$array->rule('foto', 'Upload::not_empty');
$array->rule('foto', 'Upload::type', array(':value', array('jpg', 'png', 'gif')));
if ($array->check())
{
// Prošli jsme validací, ukládáme fotku
$file = Upload::save($array['foto'],NULL,APPPATH."/upload");
//manipulace se souborem - tady nahravany obrazek zmenšuji na 100px
$image = Image::factory($file);
$image->resize(100, NULL);
$image->save();
}
Překvapení třetí – dokumentace
To co mě překvapilo nejvíc, je dokumentace. Není sice bůhví jak obsáhlá, je dost strohá na příklady, nicméně je součástí distribuce a k jejímu rozfungování stačí odkomentovat příslušný modul v souboru bootstrap.php:
'userguide' => MODPATH.'userguide', // User guide and API documentation
Celou si ji pak můžete projít pod url /guide. Vzhledem k tomu, že používám lokální vývojové prostředí, nepotřebuji nutně on-line připojení k internetu, celou dokumentaci si mohu libovolně studovat a procházet. Výborná záležitost!