Ostatnio, głównie ze względów finansowych, wróciłem do programowania w PHP. Pierwszą rzeczą jaką robi się po długiej przerwie w programowaniu w danym języku jest sprawdzenie, czy ktoś w międzyczasie nie znalazł sposobu by umilić kodowanie. I rzeczywiście, komuś udało się to zrobić.
Jakieś pół roku temu świat usłyszał o Ruby on Rails. Jest to framework do tworzenia aplikacji internetowych, napisany w języku Ruby. Najważniejszą jego cechą jest to, że nie trzeba się szczególnie wysilać, żeby stworzyć jedne z bardziej pracochłonnych elementów strony, jak np. formularze. RoR zachwycało prostotą, było to RAD w pełnym tego słowa znaczeniu, choć w podejściu zupełnie innym niż to znane z J2EE czy ASP.NET. Zamiast pracochłonnej obsługi zdarzeń i tworzenia ogromnych plików konfiguracyjnych w XML’u, RoR oferował jak największą automatyzacje zadań. Zamiast plików konfiguracyjnych są konwencje nazw plików, klas, metod i zmiennych. Niby ograniczanie swobody, ale przy okazji pozwala zachować porządek w kodzie.
O RoR można się jeszcze długo rozpisywać, ale ja miałem pisać o pieczeniu. Konkretniej, o pieczeniu ciasta. Mowa o frameworku CakePHP, który chyba najbardziej obrazuje to jak wyglądałby Rails gdyby był pisany w PHP. Chociaż PHP nie posiada tylu ‘magicznych’ kruczków składniowych co Ruby, w kilku względach jest od niego lepsze. Po pierwsze, jest powszechnie instalowane na serwerach. Z Ruby… bywa bardzo różnie. Po drugie, szkoda uczyć się, bądź co bądź skomplikowanego języka jakim jest Ruby, tylko po to by nie móc tego wykorzystać.
Muszę przyznać, że twórcom Cake’a bardzo dobrze udało się oddać RoRowy sposób pisania aplikacji. Piszę w nim średnio skomplikowanego CMSa i choć czasami widać w tym frameworku braki i błędy, to w niektórych miejscach pokazuje prawdziwą potęgę. Przykład, tworzenie panelu administracyjnego. Modele tworzą się praktycznie same, kontroler to kilka linijek kodu. Dzięki helperom w prosty sposób tworze sobie formularz, podpinam pod wszystko bibliotekę Prototype i w ciągu 30 minut mam panel zarządzania podstronami, oparty o AJAXa, z pięknymi efektami przejściowymi. Gdybym chciał to pisać bez Cake’a, zajęłoby to co najmniej 10 razy więcej czasu.
O CakePHP będę na pewno jeszcze nie raz tutaj pisał w miarę tworzenia kolejnych projektów. Już teraz udało mi się go mocno rozbudować o własne funkcje (komponenty, helpery, elementy itd.), a pracuje z nim dopiero od wczoraj. Zachęcam do testowania, można sobie stworzyć bardzo wygodną platformę do tworzenia aplikacji przy minimum wysiłku.