CodeIgniter vs Yii framework
Jako fanboy CodeIgniter ‘a ciężko mi było spróbować i przekonać się do czegoś innego. CodeIgniter jako framework dla PHP zapewnił to co było mi potrzebne – modularność, porządek – sporą liczbe gotowych modułów. Polubiłem go głównie za bardzo klarowną dokumentację i prostotę całego rozwiązania. Jednak po dłuższej pracy z tym rozwiązaniem odkryłem też jego braki.
Jego prostota po pewnym czasie zaczyna też być jego wadą. Brak wbudowanego CRUD’a i praktycznie nie istniejące wsparcie dla idei modelu (o czym napisał jeden z moich czytelników) to główne wady CI. W przypadku prostych projektów nie stanowi to problemu, modele tworzymy sami, ale trzeba pisać wszystkie zapytania “ręcznie” – dbać o relację pomiędzy złożonymi tabelami i obiektami.
Oczywiście można skorzystać z rozbudowanych ORM, ale doczepić jakieś dodatkowe biblioteki, ale jak zwykle – jeżeli czegoś nie dają w standardzie, odczuwam pewien niedosyt. Poza tym przy pracy z CI zabrakło mi zwartych i szybkich rozwiązań dla generowania powtarzalnego kodu. Przy projekcie liczącym 20-30 tabel, gdzie trzeba szybko coś dodać, tworzenie kolejnych modeli, widoków jest upierdliwe – nudne 😉
Zabrakło mi też prostego rozwiązania dla OpenID czy autoryzacji Google – wprawdzie wyklikałem parę modułów, ale ciągle mi mało – no i klikać musiałem samodzielnie. Słabo też radzą sobie klasy do validacji formularzy. Parę problemów miałem też z driverem cache no i obsługą ciasteczek.
Co na plus CI? Dokumentacja – jest doskonała – naprawdę nie spotkałem się z lepszą. Przejrzysta struktura katalogów, łatwa konfiguracja routingu no i wydajność.
Krok dalej
Po kolejnym sprawdzeniu dostępnych rozwiązaniem postanowiłem sprawdzić Yii framework – chwalą się, że są najszybsi. Poniżej wyniki testów, którym oczywiście nie można ufać, ale… budowa Yii wskazuje na to, że mogą mieć odrobinę racji.
Sprawdziłem dokumentację – nie jest tak szczegółowa i dobra jak w przypadku CI, ale jest spore wsparcie ze strony użytkowników.
Ilość gotowych modułów zaskakuje, jest praktycznie wszystko co potrzeba. Duże lepsze wsparcie dla Ajax’a oraz validacji formularzy. Zasadniczo wszystko wychodzi z pudełka na starcie.
Co jeszcze na plus? Wielki plus – ten system jest naprawdę szybki w kodowaniu. Chodiz mi to głównie o funkcje automatycznego generowania kodu gii (nazewnictwo modułów jest koszmarne) pozwala na szybkie tworzenie modeli i kontrolerów na podstawie baz danych.
W ciągu zaladwie kilku godzin bez znajomości tego framework’a udało mi się wyklikać kompletny panel do zarządzania domenami w Lighttpd , Pure-FTPd i PowerDNS – w CI po 8h ten sam kod zajął mi ponad 8h 🙂
Wbudowane biblioteki dla autoryzacji – co jest praktycznie podstawą każdego systemu, system widget’ów które generują formularze albo widoki na podstawie danych bezpośrednio z modelu. Widziałem (nie sprawdzałem) jeszcze biblioteki dla OpenID czy Facebook connect’a. Zapowiada się dobrze.
Tyle achów i ochów na początek. Zobaczymy jakie opinie będę miał za kilka miesięcy na temat tego rozwiązania.
A dla lubiących porównania – polecam artykuł porównujący Zenda / CodeIgnitera oraz YII