kiedyś kupię nóż i powyrzynam wszystkich wkoło, kupię nóż, zostawię tylko dwoje, tylko ja i ty...
31 paź 2006
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)
19 Responses for "Code Igniter vs. cakePHP – okiem praktyka"
31-10-2006 @ 15:45 1
Przyznam, że w piątek zacząłem pierwszy raz coś robić w Cake’u. To mój pierwszy framework i da się zauważyć, że “przyspieszenie” pracy jest znaczne:) W wolnej chwili zapoznam się też z CI i Symfony, bo może rzeczywiście są jeszcze lepsze
31-10-2006 @ 16:19 2
@Paweł: z frameworkami jest jak z garniturami: muszą być szyte na miarę albo musisz się wbić w gotowy egzemplarz. Nie każdy będzie dobrze na tobie leżał
31-10-2006 @ 17:08 3
hej normanos, fajne porownanie z tymi garniturami! pozdrowienia
01-11-2006 @ 14:59 4
No właśnie, nowy garnitur też by mi się przydał
01-11-2006 @ 21:42 5
Ja tak siadłem kiedyś do Cake i w ogóle mi się nie spodobał. Siadłem do CI… i piszę w nim sporawą aplikację. Właśnie przeniesioną bezproblemowo na najnowszą wersję 1.5 (bo to jeszce bardzo wczesne stadium).
Naprawdę wygodna sprawa. A jakie przyspieszenie pracy, mmm…
03-11-2006 @ 00:15 6
Ledwo dałeś jedną poradę i już nowy framework co będzie z tydzień ?
Jedno nie podoba mi się we wszystkich frameworkach sposób podejścia do layoutów, podejście z poprzedniej epoki . XML XSLT I XPATH to jest to ! Czekam na framework który będzie to obsługiwał. bo na razie ciągnę na przerobionej mojavi.
03-11-2006 @ 09:13 7
@bella: o cakePHP chciałem napisać więcej, napisałem w nim cały serwis więc kilka porad (m.in. jak tworzyć własne helpery) by się znalazło. Niestety byłem tak bardzo zajęty pracą, że NIC nie napisałem, a w międzyczasie znalazłem lepszego (dla mnie) frameworka
Tym razem postaram się coś napisać w trakcie robienia kolejnego serwisu
03-11-2006 @ 10:24 8
XML, XSLT ? nigdy w życiu, nie chce mieć nic wspólnego z zabawą w XML w moim kodzie
i nie tylko ja co pokazuje np. popularność Ruby on Rails
11-11-2006 @ 16:47 9
Jaki codec potrzebny jest do otworzenia tych filmików? Nie czyta mi audiocodeca.
11-11-2006 @ 16:55 10
Nie mam zielonego pojęcia, nie znam się na tym. Skoro .mov to chyba jakiś QuickTime nie?
08-10-2007 @ 13:59 11
Jak dla mnie cakephp jest spoko, tylko trzeba na niego poświęcić sporo czasu. Chodzi o naukę i niestety gówniany manual.
26-01-2008 @ 02:23 12
Właśnie dokonywałem wyboru między CI i Cake. Zagłębiłem się trochę i oto co mnie naszło: CI umarło, jest Kohana ale we wczesnym stadium więc wolę poczekać. Cake żyje i ma się dobrze. Po przeleceniu manuala stwierdziłem, że dziwne mity krążą i początkowo mnie znięchęciły ale teraz wiem, że niesłusznie. Reżim w nazewnictwie. Manual wyraźnie pisze, że nie musisz – jedynie możesz aby ułatwić sobie życie. Podobnie z HasOne, HasMany itp – możesz, nie musisz. No i php4. Że pozwala używać – i co z tego? Można pisać w PHP5, nikt nie zabrania. Skoro więc działa i z 4 i z 5 a przy tym jest bezpieczny to o co chodzi?
26-01-2008 @ 13:49 13
Piotrze, porozmawiamy o co chodzi jak skończysz większą aplikację w kejku, ok?
Pozdrawiam.
21-02-2008 @ 19:24 14
A ja kurde siedze nad CakePHP i nie moge poradzić sobie w jaki sposób można bezpośrednio z component’a dostać się do bazy danych, a zamiast tego sprawdzam która z moich klas controller’ów jest aktualnie aktywna i przez nią łącze się z bazą… – wie ktoś z Was czy można jakoś prościej ? (generuje sobie menu z bazy, które na wszystkich stronach jest takie samo…). Z góry dzięki za pomoć
.
16-04-2008 @ 13:05 15
Witam co do projektów w CakePHP to fakt: trzeba się go nauczyć. Programowanie z biegu jest trudne jesli nie niemozliwe.
Ja wlasnie skonczylem moj pierwszy projekcik w caku(zaznaczam ze byla to wprawka i miala na celu nauke frameworka) i musze powiedziec ze cake daje olbrzymie mozliwosci co do kontroli relacji (wiele do wielu, czy tez kaskadowe usuwanie), walidacji danych, czy tez sposobu prezentacji danych.
Calosc stworzylem w 2tygodnie (no-life co prawda) i jestem calkiem zadowolony z efektu (mimo ze wciaz wymaga sporej ilosci poprawek).
Mapr: http://mapr.pl
Catch IT zdecydowala się na stworzenie swojego CMS’a wlasnie w caku – jesli bedzie taka mozliwosc dam znac, jak wygladaja postepy pracy – zapowiada sie smakowity wypiek ;]
20-10-2008 @ 20:43 16
ZendFramework rulez!!!
12-01-2009 @ 17:25 17
CI poznałem jakiś czas temu i przyznam że mnie też bardzo mile zaskoczył. Praktycznie w 2 dni nauczyłem się go dobrze obsługiwać. Polecam każdemu, tak samo początkującemu jak i zaawansowanemu programiście.
23-05-2009 @ 17:06 18
Cóż wymuszanie nazewnictwa przez cake’a to jak najbardziej pożądana sprawa według mnie a stosowanie modeli i opcji hasMany i belngsToMany sprawia,że potem masz autoamtyzacje powiązań co jets na duży PLUS. Według mnie cakePHP jest lepszy od Ignitera – jeden problem to hosting : oprócz newrails.pl nasi hostersi nie oferują hostingów optymalizowanych pod frameworki co jest minusem bo framework ma większy narzut przez samego sandboxa.
14-06-2009 @ 18:50 19
ja też polecam cake’a – chociaż kohana idzie bardzo szybko do przodu – ale miałem problem z hostersami dla kohany – dopiero na http://newrails.pl udało mi się uruchomić wszystko bez problemu; niemniej jednak wiążę duże nadzieje z kohaną
Zostaw komcia ;)