Kohana – szybki i prosty framework

Od dłuższego czasu możemy obserwować bardzo dynamiczny rozwój różnego rodzaju frameworków mających ułatwić trudną pracę programisty. Każdy większy projekt gromadzi wokół siebie dość liczną społeczność, która aktywnie rozwija i promuje swój przepis na łatwiejsze i szybsze programowanie.

Szczerze przyznaje, że jeszcze do niedawna dość nieufnie patrzyłem na wszelkie tego typu rozwiązania. Przeszkadzały mi przede wszystkim narzucanie z góry konwencji programistycznych (w końcu nie zawsze dany wzorzec jest najlepszy do danego typu rozwiązania), częsty przerost formy nad treścią oraz ryzyko dotarcia do “białych plam”, czyli miejsc, w których jeden niezbędny element nie został przewidziany przez twórców, co pociągało za sobą konieczność programowania całości elementu od podstaw. Jest to szczególnie uciążliwe dla mniej doświadczonych programistów.

Pierwszym frameworkiem, który zmienił moje podejście do tego typu rozwiązań był jQuery. JavaScript nigdy nie był moją mocną stroną, a w dobie AJAXa rzadko zdarza się projekt, przy którym nie musiałbym tej niechęci przezwyciężać. JQuery powstał specjalnie z myślą o łatwym i szybkim tworzeniu efektownych interfejsów. Przekonała mnie jego prosta składnia i ogromne możliwości, dzięki czemu proces dochodzenia do zamierzonych efektów jest skracany do minimum.

Frameworki PHP zawsze nasuwały mi na myśl konieczność poznawania ich często skomplikowanej architektury i sposobu korzystania z poszczególnych klas. Poddawałem w wątpliwość ich najważniejszy cel ? ułatwienie programowania. Przecież PHP to i tak prosty język, przy odrobinie samodyscypliny, zastosowaniu odpowiednich wzorców, kod może być spójny i przejrzysty.

Do głębszych refleksji zmusiła mnie jednak frustracja spowodowana mozolnym wklepywaniem linijek kodu przy większych projektach. Coraz częściej stwierdzałem, że moje własne rozwiązania nie spełniają podstawowych w dzisiejszych czasach wymogu. – szybkości i efektywności. Używając jQuery , czytając o RoR czy CakePHP zacząłem dostrzegać, że szybkość i efektywność rozwiązań może iść w parze z przemyślaną architekturą, a w zasadzie jest jej wyznacznikiem. Tym samym rozpoczął się kolejny etap mojej edukacji programistycznej: poszukiwania frameworka spełniającego wszystkie wymagania: prostoty, zwięzłości, charakteryzującego się czystym OPP i lekkością, tak bym mógł bardzo szybko poznać schemat jego działania i w razie potrzeby wprowadzać niezbędne modyfikacje bez konieczności spędzania godzin nad dokumentacją.

Swoją przygodę rozpocząłem od Zend Framework. Bardzo rozbudowane i zaawansowane rozwiązanie. Podstawowym argumentem, który przemawiał za tym frameworkiem, była pewność co do przyszłości rozwiązania. W końcu jest firmowany przez Zend – twórców PHP. Ostatecznie jednak stwierdziłem, że to rozwiązanie jest zbyt rozbudowane i nie przystaje do większości moich projektów, a poszczególne komponenty są zbyt luźno ze sobą powiązane. Postanowiłem obserwować rozwój Zend Framework i poczekać trochę z jego zastosowaniem.
Jednocześnie skierowałem swoją uwagę na CakePHP i CodeIgniter. CakePHP rozwija się bardzo dynamicznie, ma liczną społeczność i dobrą dokumentację. To jednak CodeIgniter wydał mi się bardziej przyjazny i odpowiedni do moich zastosowań. Urok jednak szybko minął gdy zauważyłem, że twórcy CI nic sobie nie robią z próśb programistów i nie zamierzają przechodzić na PHP5. Podstawowym ich argumentem, było przekonanie, że zanim PHP5 wejdzie w powszechne użycie minie co najmniej 10 lat. Nie mogłem uwierzyć w tak absurdalne tłumaczenie. Przecież gdyby PHP zatrzymało się na tak długi okres czasu, zostanie zmiecione z powierzchni ziemi przez inne konkurencyjne rozwiązania, jak choćby RoR.

Już wiedziałem, że idealnym rozwiązaniem było by coś na kształt CI, jednak z OOP w PHP 5. Okazało się, że taki framework istnieje. Część społeczności zgromadzonej wokół CI postanowiła przepisać kod na PHP5 jednocześnie poprawiając błędy popełnione przez Ellis Labs. Tak powstał framework o dość egzotycznej nazwie – Kohana (w języku Dakotów oznacza szybki, prędki).

Kohana jest framework’iem napisanym w PHP 5, który używa architektury Model View Controller. Autorzy chcieli zachować podstawowe zalety CI ? bezpieczeństwo, lekkość, łatwość użycia. Charakteryzuje się dużą wydajnością i niebywałą wygodą użytkowania, eliminując przy tym dobrze znane użytkownikom bolączki swojego protoplasty. Kohana jest bardzo młodym projektem, jednak już teraz posiada wiele cech, wyróżniających ją z pośród innych tego typu rozwiązań. Framework nie ma zbyt wymagający jeśli chodzi o serwer:
- Serwer z PHP w wersji 5.2 (lub nowszej) obsługujący Unicode
- PCRE skompilowane z flagami -enable-utf8 i -enable-unicode-properties
- Biblioteki iconv (transliteracja) i mcrypt (szyfrowanie)
- Biblioteka mbstring znacznie przyśpieszy funkcje UTF-8 (opcjonalna)

Kohana jest obecnie w fazie dynamicznego rozwoju. Aktualna wersja jest oznaczona jako 2.1.2 , jednak już 8 sierpnia 2008 autorzy zapowiadają wydanie wersji 2.2 która ma wprowadzić wiele znaczących zmian i dodatków(ang. addons) , jak np. moduły ułatwiające implementowanie AJAX-a (choć już teraz przy zastosowaniu jQuery nie jest to nic skomplikowanego).

Przydałoby się jeszcze z pewnością rozbudowanie bardzo skromnej dokumentacji (polska wersja jeszcze skromniejsza). Pomocą dla początkujących może być również systematycznie rozbudowywana bogata baza tutoriali.

W tym miejscu nie będę wkraczać w bardziej zaawansowane aspekty programowania serwisów z wykorzystaniem Kohany. Zainteresowanych zachęcam do zapoznania się z dokumentacją i forum projektu. Poniżej zamieściłem linki do interesujących stron i artykułów poświęconych Kohanie. Myślę, że warto zajrzeć z samej ciekawości, bo Kohana już teraz posiada wiele cech, dzięki którym w przyszłości może pretendować do grupy najpopularniejszych frameworków.

Przydatne linki:
http://kohanaphp.com – Oficjalna strona frameworka Kohana (ang),
http://learn.kohanaphp.com – Bogata baza tutoriali (ang),
http://kohanaphp.pl – Oficjalne polskie wsparcie Kohany,
http://forum.kohanaphp.pl – polskie forum Kohany,

Artykuły:
Kohana – Powiew świeżości wśród frameworków PHP – phpsolutions (3/2008)

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>