Kohana je open source framework pro PHP verze 5. Tento framework vznikl přepracováním frameworku CodeIgniter na vyšší verzi PHP. Stejně, jako CodeIgniter (CI) a další frameworky, je založený na architektonickém principu MVC. Naopak, od CI se liší například tím, že je vyvíjen pouze komunitou. První verze byla k dispozici v polovině roku 2007, poslední verze 3.3.1 je z roku 2013. Je dostupná pod BSD licencí. Mezi základní vlastnosti Kohany patří vysoká bezpečnost, odlehčenost a snadnost použití.
Historie
Skupina, která vyvíjí Kohanu, se začala formovat v polovině roku 2007 z uživatelů frameworku CodeIgniter. První verze, zatím ještě bez dokumentace, byla připravena během června a července 2007. V průběhu září a října se tvůrci rozhodli pro kompletní přepsání frameworku do PHP verze 5 a tak byla v listopadu 2007 k dispozici Kohana 2.0. Tuto verzi tvůrci dále vylepšovali, takže na konci roku 2008 již existovala verze 2.3.
Vlastnosti
Mezi základní vlastnosti Kohany patří úplná kompatibilita s UTF-8, extrémní odlehčení (tzn., že jádro systému závisí jen na několika malých knihovnách), volně vázaná architektura, snadná rozšiřitelnost, použití Model-view-controller (MVC) a bezpečnost. Ta je zajištěna např. limitováním životnosti cookies používaných pro autentizaci, ověřováním HTTP hlavičky Referer, používáním metody POST při odesílání formulářů či generováním náhodných řetězců.
Instalace
Chcete-li si nainstalovat Kohanu, potřebujete mít nainstalované PHP (nejlépe nejnovější verzi) a nějaký HTTP server, jako např. Apache 1.3+, Apache 2.0+, lighttpd nebo MS IIS. Pak již stačí stáhnout si soubor s Kohanou, rozbalit a zkopírovat soubory do správného adresáře HTTP serveru.
Jádro
Jádro je tvořeno následujícími třídami:
- Benchmark – jako výchozí jsou spouštěny: nahrání Kohany, nastavení prostředí, inicializace systému, nastavení řadiče a čas jeho výkonu, celkový čas výkonu.
- Config – od verze 2.2 je součástí třídy Kohana
- Event – Kohana neukládá události do zásobníku, ale do fronty, čímž zajišťuje správnou časovou návaznost jednotlivých událostí.
- Kohana – třída, která nahrává Router, odesílá vše k řadiči a provádí finální výstup. Obsahuje metodu Charset pro nastavení kódování, metody pro konfiguraci, logování a několik dalších metod.
- Log – od verze 2.2 je součástí třídy Kohana
- Unicode – obsahuje statické metody pro práci s UTF-8
- View – třída zobrazující informace v prohlížeči a to nejčastěji pomocí HTML, CSS a JavaScriptu, umožňuje však i využití XML nebo Json pro AJAX. Důvod pro používání pohledů je oddělení grafické prezentace od logiky aplikace, čímž lze zajistit znovupoužitelnost a čistotu kódu.
Moduly
Chcete-li si nainstalovat Kohanu, můžete si, kromě základního souboru obsahujícího jádro, stáhnout také několik samostatných modulů, a to:
- Archive – modul pro vytváření zip, tar, gzip, and bzip archivů
- Auth – pro jednoduchou autentifikaci a správu uživatelů. Tento modul používá ORM.
- Gmaps – pro integraci Google Maps
- Kodoc – pro vytváření dynamické, automaticky generované dokumentace. Zatím je dostupná beta verze modulu.
- Payment – modul pro aplikace používající platby přes internet. Podporuje Authorize.net, PayPal, Trident, Trust Commerce a YourPay.
Dále si můžete stáhnout dva automatické nástroje:
- Markdown – nástroj pro formátování textu. Jednoduché značky, které určující formátování, převede na HTML kód.
- SwiftMailer – knihovna pro posílání e-mailových zpráv. Podporuje HTML e-mail, SMTP, MIME, zprávy s přílohou, servery požadující přihlášení nebo šifrování.
Kohana je vytvořena v několika jazykových mutacích, a to v angličtině, němčině, španělštině, finštině, francouzštině, italštině, nizozemštině, polštině, portugalštině a ruštině. Rusky mluvící uživatelé mají dokonce svoji vlastní sekci v diskusním fóru.
Knihovny a pomocné funkce
Kohana zahrnuje 13 knihoven a 20 pomocných funkcí (helpers). Samostatná knihovna je vytvořena pro cachování, práci s kalendářem, šifrování pomocí symetrického klíče, práci s obrázky, stránkování výstupu, práci s uživatelskými relacemi (session). Jsou to knihovny Cache, Calendar, Encrypt, Image, Pagination, Session. Jedna knihovna (Captcha) se věnuje ověření, že s výstupem aplikace pracuje člověk – pomocí této knihovny lze vygenerovat a zobrazit kód, který je čitelný pro člověka, ne však pro roboty. Dvě knihovny (Input a Validation) jsou určeny pro práci se vstupy. Input řeší zpracování vstupů získaných např. pomocí metod GET a POST, Validation řeší ověření správnosti takto získaných vstupů. A protože mnoho webových aplikací pracuje s databázemi, další dvě knihovny (ORM a Database) jsou určeny pro práci s nimi. ORM (Object Relational Mapping) umožňuje převést objektové struktury do relační databáze a dále s nimi pracovat, Database obsahuje především ovladače pro MSSQL, MySQL, MySQLi, PostgreSQL a PDOSqlite. Knihovna Profiler přidává do dolní části stránky informace užitečné při ladění a optimalizaci. URI poskytuje metody pro práci se segmenty URI. Pomocí View lze určovat, jak budou vypadat výsledné webové stránky.
Pomocné funkce (helpers) obsahují mnoho připravených metod. Ať již potřebujete funkci, kterou znáte z jiného programovacího jazyka, a která není zabudovaná v PHP5 nebo jste jen třeba ještě nikdy předtím nepotřebovali získat informace od uživatelů Vašich stránek přes formulář, pomoc můžete hledat právě tady.
Helper Array obsahuje metody pro práci s poli hodnot, helper Cookie pomůže s nastavením, získáním či smazáním cookies, Date obsahuje mj. metody pro převod UNIXového času na DOSový a naopak, či zjištění času v jiné časové zóně. Download otevře dialogové okno pro ukládání souboru, Upload obsahuje metody, které naopak využijeme, pokud chceme nějaký soubor nahrát. Email odešle emailovou zprávu a File rozdělí nebo naopak spojí určené soubory. Pomocí Expires lze nastavit, kdy si má klient vyžádat webovou stránku od serveru, místo aby použil verzi v cache a Form nám pomůže s tvorbou formulářů. Format zobrazí telefonní číslo po třech číslicích a url adresy s nezbytným http:// na začátku a HTML za nás napíše příslušné HTML značky. Number má jedinou metodu round(), která slouží pro zaokrouhlení celých čísel. Pomocí této funkce můžeme např. jednoduše zaokrouhlit částku 32 Kč na 35 Kč, což standardní zaokrouhlovací funkce neumí. Také helper Remote má jen jednu metodu, a to status(), která vrací HTTP status kód, podle kterého můžeme zjistit, zda zadaná webová stránka existuje. Helper Request slouží v podstatě pro získání různých informací z HTTP hlaviček. Metody z helperů Security a Valid se mohou hodit při validaci vstupu od uživatele. Text pak obsahuje další metody pro práci s textovými řetězci a Inflektor dokonce pro práci s frázemi. Feed obsahuje metody pro práci s RSS, a pomocí metod helperu URL můžete např. zařídit přesměrování uživatele na nějakou konkrétní stránku.
Vytváříme-li nějakou aplikaci, Kohana automaticky nahrává knihovny URI a Input, ostatní knihovny se nahrají, jen pokud je využijeme. Kromě základních knihoven můžeme vytvořit a použít i vlastní knihovny či knihovny z jiných frameworků. Chceme-li použít některou z pomocných funkcí, funguje to podobně. Rozdíl je v tom, že pomocné funkce jsou volány jako statické metody, zatímco metody v knihovnách jsou nestatické a je proto potřeba nejdříve vytvořit instanci dané třídy. I pomocné funkce můžeme dále rozšiřovat o další metody, nesmíme však dělat změny přímo v souborech, které jsou v adresáři System, ale v jejich kopiích, které pak umístíme do adresáře vytvářené aplikace.
Externí odkazy