źle się czuję wśród tych co otwarte już drzwi chcą wyważyć
31 paź
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)
6 wrz
Dzisiaj 2 banalne rady, w zasadzie kwestie o których powinien każdy wiedzieć, jednak jak pokazują posty na forum.php.pl z zeszłego tygodnia wcale tak nie jest.
Pierwsza sprawa to ustawienie stałej DEBUG (/app/config/core.php) na coś więcej niż 0 (sugeruje 2). Zaskakujący jest fakt, iż większość osób, które pisały do mnie na owym forum z prośbą o pomoc “bo w cake nic nie działa i nic się nie dzieje” miały DEBUG ustawiony na 0 (no to rzeczywiście nic dziwnego, że kawałka komunikatu o błędach nie zobaczyły
). Swego czasu pytałem się też kilku “kejkowców” jak tam u nich wygląda sprawa z ilością pytań sql. I tu to samo: nie mieli pojęcia bo… w ogóle nie pracowali na włączonym DEBUGu. Nie powiem, jestem zdziwiony, że w ogóle tak mozna napisać całą aplikację
Druga rada to też wynik postów na forum. Pamiętajcie aby po $this->redirect(’/kontroler/akcja/’); zawsze wstawić exit();! Brak exita to musi być dość powszechny błąd skoro nawet było o tym na piekarence
31 sie
Autor bloga cakebaker uruchomił kilka dni temu serwis zleceń związanych z cakePHP. Nie wróżę tej stronie świetlanej przyszłości: autor chce wkrótce pobierać 20 zielonych za ogłoszenie (a przy zerowej liczbie ogłaszających jest to dosyć głupie i… bezczelne)
. Pomijam już fakt, iż klient na ogół nie mówi “zróbcie mi sajta w cakePHP” bo taki serwis ogłoszeniowy można wykorzystać do np. skompletowania większego zespołu, tudzież rozbudowania działającej już “kejkowej” aplikacji.
Przy okazji tej ciekawostki zaczynam nowy cykl na moim blogu: garść porad (krótkie, nieskomplikowane, pomocne przy budowaniu rozbudowanych sajtów) związanych z cakePHP. Powoli kończę (75% done) swój pierwszy serwis oparty na tym frameworku i można powiedzieć, że podstawy mam za sobą.
2 sie
… czyli subiektywny przegląd frameworków
Dawno nic nie pisałem, a to (standardowo) ze względu na masę pracy: troche zleceń, trochę własnej roboty. Właśnie z powodu małej ilości czasu zainteresowałem się gotowymi frameworkami w PHP. Wprawdzie jakiś czas temu zacząłem pisać coś swojego (oparte na PDO i OPT) ale wiele z tego nie wyszło. Raz: nie posiadam odpowiednio sporej wiedzy aby napisać to porządnie, a dwa: nie da się tego napisać szybko.
Przegląd frameworków zrobiłem jakis czas temu (nawet wtedy z cakePHP pożyczyłem sobie bardzo fajną obsługę sesji) ale wtedy ostatecznie nic nie wybrałem ze względu na dosyć specyficzne wymagania. Tym razem na lekturę różnych opracowań i poszczególnych dokumentacji poświęciłem kilka dni. Z listy 10 PHPowych frameworków wybrałem 3 które mi się spodobały i o których słyszałem najwięcej tj. cakePHP, Code Igniter i Symfony.
(więcej…)