normanos 2.0

każdy nowy dzień rodzi nowe paranoje

Archive for listopad, 2007

Kohana 2.0 - the swift php5 framework

No i wykrakałem wczorajszym wpisem ;) Jest oficjalna wersja 2.0, jest i nowa strona www. Ciekawie został rozwiązany dział download. Można pobrać dwie wersje:

  • Tiny Flower (Minimal) – zawiera biblioteki: Session, Validation, oraz helpery: array, cookie, form, html, security, url, validation.
  • Naked Babe (Standard) – dodatkowe biblioteki: Archive, Database, Encryption, Pagination, Profiler. Dodatkowe helpery: date, download, feed, inflector, text.

Dodatkowo można pobrać z zewnętrznymi projektami przystosowanymi do pracy z Kohaną:

Na razie za dokumentację robi wyciąg z komentarzy w formacie NaturalDocs. Dla początkujących być może problem, użytkownicy CI nie powinni mieć problemów z oswojeniem się z nowym frameworkiem. Razem z Kohaną jest dostarczany kontroler zawierający kilka przykładów.

Pojawiają się pierwsze zgłoszenia usterek, pierwsze opinie czy też sugestie co do następnej wersji, SVN przestawił się już na support numerka 2.1 ;) Trzymam kciuki za ten projekt.

  • 24 Comments
  • Filed under: PHP
  • Ważne: ta notka przeleżała w brudnopisie prawie miesiąc, czekając aż zostanie skończona. Niestety jestem w trakcie pracy nad bardzo dużymi nowymi projektami i nie miałem czasu jej skończyć. Z uwagi na to, że lada dzień zapowiadane jest “zamrożenie” stanu z SVN i wydanie wersji stabilnej, postanowiłem opublikować to co mam ;)

    Sposób prowadzenia projektu CodeIgniter od dawna był mocno krytykowany (w tym i przeze mnie). Nowe wersje, o ile się pojawiały to były to tylko kosmetyczne zmiany i poprawki większych błędów (błąd, który zgłosiłem w helperze “date” chyba pół roku temu, do dzisiaj nie został poprawiony). Developerzy CI pozostawali głusi na sugestie społeczności tego frameworka, nie można było się doprosić istotnych poprawek czy też nowych funkcjonalności. Chyba najbardziej dobijający był fakt, iż oficjalnie CI nie ma zamiaru być przepisane pod kątem PHP5 (być może problemem jest silne związanie CI z innym, komercyjnym produktem - ExpressionEngine), a informacja o końcu supportu dla PHP4 nie zrobiła na panach z EllisLab wrażenia. W pewnym stopniu ich rozumiem: trzeba z czegoś żyć i na czymś zarabiać, a w/w zmiany wymagały by przepisania CI w zasadzie od zera. Z drugiej strony, z upływem czasu będzie im coraz trudniej, w pewnym momencie może się już okazać, że jest za późno.

    I stało się. Siła tzw. ‘community’ czyli społeczeństwa zorganizowanego wokół tego projektu była tak duża, że spowodowała “oderwanie się” najbardziej aktywnych użytkowników i powstanie nowego projektu, którym jest, tada (fanfary): KohanaPHP (w tej chwili pod tym adresem jest stara, nieaktualna już wersja strony projektu, informacji należy szukać na forum).

    Czym jest Kohana? To tzw. fork CodeIgnitera. Start projektu zaczął się od wersji CI 1.5.4 w okolicach czerwca br. Chwilę później została wydana wersja 1.0, która stanowiła most pomiędzy CI a Kohaną. Trochę dziwię się tej numeracji, gdyż tak na prawdę w tej wersji został nakreślony nowy “core” frameworka oraz przepisano kilka bibliotek. Co najwyżej mogła to być wersja 0.1 ;) Projekt zaczął od kodowej nazwy “Blue Flame”, która ze względu na zbyt dosłowne nawiązanie do CI (logo CI) została potem zmieniona na Kohana. W międzyczasie rozwój projektu został wstrzymany ze względu na problemy prawne (interpretacja dziwnej licencji CI), ba, nawet pojawiła się informacja, że w obecnej formie projekt może przestać być rozwijany. Na szczęście sprawy prawne zostały w miarę szybko rozwiązane (nastąpiło też jakieś porozumienie z EllisLab czyli właścicielami CI) i nastąpiła praca nad pierwszą stabilną wersją oznaczoną jako Kohana 2.0 (eh, ta numeracja).

    Czym Kohana ma się różnić od CodeIgnitera?

    • przede wszystkim PHP5 - całkowicie od zera zostało wszystko przepisane, poczynając od samego core, a kończąc na helperach
    • pełne wsparcie dla UTF8 (CI płata straszne figle w tym temacie, szczególnie jeżeli chodzi o funkcje routera i bazujące na tekście)
    • wyeliminowaniem wszystkich kretyńskich błędów CI, zarówno jeżeli chodzi o PHP jak i warstwę użyteczności
    • rozwijaniem projektu - wydaje się, że to oczywiste, przykład stojącego w miejscu (a w zasadzie cofającego się) CI pokazuje, że nie dla każdego

    Widać, że programiści Kohany postawili nie jeden serwis na CI i poznali wszystkie jego wady. Wiele drobnych ale na prawdę istotnych rzeczy zostało zorganizowane w inny sposób lub zostały inaczej napisane, choćby logiczniejsza struktura katalogów i dodatków, lepsze rozwiązania w bibliotekach np. paginacji czy konfiguracji, lepiej rozplanowane pliki konfiguracyjne itp.

    Ideologia CI (dzięki bogu) została zachowana. Czyli nadal chodzi o bardzo lekki framework MVC, nie narzucający ostro specyficznej dla siebie konwencji pisania i nie zmuszający do korzystania z “jedynie słusznego” sposobu na rozwiązanie danego problemu. Ciesze się, że deweloperzy Kohany nie starają się na siłę uraczyć nas jakimś ORM (choć w SVN pojawił się moduł podobny w działaniu do tego z cakePHP), propelem, yamlami czy kopiowaniem rozwiązań z innych frameworków (RoR). Kto ma używać Symfony, cakePHP czy Prado, ten dawno używa i zmieniać nie będzie. To kwestia podejścia do pewnych rozwiązań, a nie tego co “jest lepsze” (ale to już temat na zupełnie inną notkę).

    Od miesiąca obserwuje zmiany w SVN Kohany. Ilość commitów jest imponująca, w zasadzie codziennie jest coś nowego. Starałem się już napisać coś w oparciu o aktualną wersję jednak wszystko tak szybko się zmienia, że jak dla mnie zdecydowanie nie jest to wersja stabilna. Co gorsza, brak jest dokumentacji, a jak wiadomo ta z CI jest bardzo dobra. I tym bardziej zdziwiła mnie informacja sprzed kilku dni, że 8 listopada pojawi się stabilna wersja 2.0. Z jednej strony, moim zdaniem, do stabilności jeszcze daleko, z drugiej, jeżeli nie wypuści się oficjalnej wersji to nigdy to się nie rozwinie i nie będzie odzewu od ludzi, nie zacznie się rozwijać nowa społeczność. Mogli by tylko popracować nad numeracją ;)

    Cieszę się, że powstał taki projekt. Wypełnia on dziurę na “rynku frameworków”, jest dla ludzi takich jak ja, którzy chcą mieć bardzo elastyczne narzędzie pracy, a jednocześnie nie są entuzjastami rozwiązań forsowanych przez inne frameworki.

    Na koniec informacja, która nie nadaje się na osobny wpis: kilka dni temu powstał polski support CodeIgnitera - www.code-igniter.pl, nie wiem czy w obliczu tej notki autor się nieco nie pospieszył (lub patrząc z innej strony: spóźnił). Może dodatkowy dział dla Kohany? ;)

    ps1. To pierwsza wzmianka o Kohanie w polskim internecie ;) (wg. Google.pl)

    ps2. wpis ten był po 10 minutach w indeksie googla ;)

  • 8 Comments
  • Filed under: PHP