Zapewne parę osób zdziwi się skąd nagle u mnie taka zmiana: CodeIgniter zamiast cakePHP. Cóż, w cakePHP ukończyłem jeden średniej wielkości serwis typu “społecznościowego” ;) Budowa tego serwisu pokazała mi jak bardzo cakePHP mnie… ogranicza. Co chwile nowe problemy, szukanie rozwiązania pokrętnymi metodami, ciągłe studiowanie dokumentacji. Do tego cakePHP w zasadzie zmusza do stosowania ActiveRecord (przymusu nie ma, a bez tego traci się prawie całą funkcjonalność związaną z obsługa bazy przez “kejka”): nie ma jak pytania z 4 tabel, 40 sqli na stronę, zabawa z modelami i $hasOne, $hasMany, $belongsTo, $hasAndBelongsToMany. To potrafi skomplikować nawet najprostsze pytania. Do tego dodajcie sobie ścisłe powiązanie modeli z bazą, reżim w nazewnictwie i już macie odpowiedź dlaczego mój pierwszy większy projekt w cakePHP pisałem ponad 1,5 miesiąca i dlaczego był moim ostatnim pisanym w “kejku” :)

A Code Igniter? Cóż, już wcześniej się mu przyglądałem i teraz żałuję, że wtedy wybrałem CakePHP. CI to zupełna przeciwność “kejka”: łatwo, lekko i przyjemnie. Dowolność w tworzeniu relacji kontroler - model, żadnych z góry narzuconych reguł, niesamowita prostota i czytelność kodu, ogrom gotowych bibliotek i helperów, które można załadować w dowolnym miejscu wg. potrzeby, do tego logiczna i przejrzysta struktura. To wszystko razem powoduje, że pracę z CI można ruszyć “z kopyta”, szybko i sprawnie, a aby dorzucić swoją klasę czy też rozszerzyć istniejące wystarczy podstawowa znajomość PHP i 2 zdania wyjaśnienia w manualu - zupełne przeciwieństwo cakePHP gdzie trzeba dobrze poznać ten framework i jego ograniczenia.

CI to nie framework dla wszystkich: na pewno jedni skrytykują go za PHP4 (aczkolwiek cakePHP też jest w PHP4), innym będzie przeszkadzała ta zupełna dowolność tego co i gdzie się “ładuje”. Ja wiem jedno: CI to framework właśnie dla mnie, to jego szukałem i z nim pracuje mi się super szybko i przyjemnie.

Nie jestem teoretykiem (“Nie wiem, nie znam się, nie orientuję się, zarobiony jestem”), nie będę porównywał technicznie co ma jeden, a czego nie ma drugi. Jestem praktykiem, mogę porównać ile i w jaki sposób pisałem serwis na cakePHP, a ile i z jakim skutkiem w Code Igniter. I w tym moim prywatnym porównaniu CI miażdży konkurencję. CI mówi: hej normanos, jestem twoim frameworkiem :)

Zainteresowanych odsyłam do:
- strony Code Ignitera
- polskiego kursu Code Ignitera autorstwa Riklaunima
- screencastu: wprowadzenie do CodeIgnitera (.mov)
- screencastu: blog w 20 minut (.mov)