Jak to się stało, że ciągle wracam do PHP i CodeIgniter

Jako entuzjasta nowych technologii, zawsze „sprawdzam” wszystkie nowinki w postaci node.js, frameworki PHP Laravel czy Phalcon PHP. Wszystko ładnie, pięknie – wszystko jest szybsze i lepsze niż jego poprzednicy. Niektóre, nawet pozwalają na niepisanie kodu, a używanie generatorów.

Niestety większości przypadków nowe technologie nie są wcale lepsze. Weźmy na przykład node.js – super szybkie, super łatwe (przecież to JavaScript) ! Milion dostępnych bibliotek. Problemy pojawiają się jednak jak trzeba napisać coś bardziej złożonego, gdzie nad projektem pracuje więcej niż jedna osoba. Złożoność kodu i piekło odwołań powodują że każdy projekt staje się koszmarem. Ilość zagłębień w metodach i odwołań – emitery, callback – dramat. Łatwo zginać w kodzie a jeszcze trudniej znaleźć problemy jak już się pojawią.

OK. Może więc nie szukajmy za daleko, skupmy się na PHP – phalcon, Laravel – dwa super fajne frameworki. Zasadniczo koncept wszędzie jest podobny – MVC – modele, widoki klasy, wsparcie dla Composer i cheja. Sprawdziłem oba – phalcon jest super fajny – szczególnie do budowania API typu REST i microframeworków – przepięknie proste modele, ładne konstrukcje. Gdzie leży problem? Po pierwsze trzeba skompilować moduł, po drugie – brakuje mi czystej struktury katalogów – a próbowaliście obsługiwać CLI w phalconie ?

Może więc Laravel – framework dla rzemieślników. No nie do końca – rzemieślnik dobiera sobie sam narzędzia, którymi pracuje – tutaj mamy Blade, Eloquent ORM i kilka innych rozwiązań które nie do końca dają mi tą swobodę. Np generatory z linii poleceń. Czy naprawdę nie można się bez tego obejść ? Oczywiście – można wymienić na coś innego, tylko… ja lubie jak działa prosto pudełka. Bez dostosowywania przez godzinę moich ustawień.

Dlaczego więc jak bumerang wraca CI ? Bo jest proste, bo działa – bo ma wszystko co trzeba po rozpakowaniu i nie trzeba kombinować za dużo. Zestaw solidnych bibliotek na których można polegać i aktualizacje nie pojawiają się raz na tydzień. Zasadniczo nie jestem zmuszony do niczego. Mogę korzystać z Active Record, albo nie. Mogę używać PHP w widokach, a mogę podpiąć Smarty, albo inne rozwiązanie. A linia poleceń ? Nigdy nie była prostsza – php index.php controller metoda – działa ?

Aby skończyć ten przydługi wywód dodam tylko, że CI nie umarł, wciąż żyje – i żyć będzie bardzo długo. Bo to zdrowy, solidny framework i nie należy się go bać. Należy go szanować…

Summary