normanos 2.0

o jak ja kocham to miejsce, tu jest tyle policji, czuje się bezpiecznie

Archive for the ‘PHP’ Category

Słowo się rzekło, Igniter u płotu

Zgodnie z tym co pisałem kilka dni temu , nowy zespół deweloperski CodeIgnitera ruszył do boju. Na razie nieco nieśmiale, proponując nam jedynie bugfixy poprzedniej wersji. Chyba najważniejsze w tym wydaniu jest to, że działa już SVN i poprawki są wprowadzane na bieżąco. No nic, pozostaje nam czekać na co najmniej 1.6.0, choć w przypadku dziwnej numeracji CI wcale nie daje to nam gwarancji nowej, mocno rozwiniętej wersji.

  • 3 Comments
  • Filed under: PHP
  • Zmartwychwstanie CodeIgnitera?

    Społeczność CodeIgnitera od miesięcy boryka się ciągle z tymi samymi problemami:

    • brak zespołu developerów
    • brak SVN
    • brak roadmapy
    • brak poprawek wielu znalezionych błędów
    • brak odzewu od autora tego frameworka

    Parę dni temu autor odnalazł się ;) serwując wszystkim fanom bardzo obiecujące wiadomości:

    • koniec z jednoosobowym projektem, CI przejmuje zespół programistów z firmy Ricka Ellisa (autor CI)
    • jak zespół developerów to wreszcie SVN

    Nadal nic nie wiadomo odnośnie przejścia na php5 (niestety, nie zanosi się na to). Mimo swoich wad CI jest nadal bardzo interesującym frameworkiem, z dużym “community”, pozwalającym na ekspresowe pisanie aplikacji w PHP. Jego braki skłoniły mnie do zainwestowania czasu w rozwój Rapide, ale o tym napiszę innym razem (jak będzie więcej konkretów na ten temat).

  • 6 Comments
  • Filed under: PHP
  • Wydajnościowy zawrót głowy

    Kolejne ciekawe porównanie wydajności różnych frameworków:

    • CodeIgniter (PHP)
    • Catalyst (Perl)
    • Django (Python)
    • Django (Python + Psyco)
    • RubyOnRails (Ruby)
    • Symfony (PHP)
    • TurboGears (Python)

    Patrząc od strony PHP:

    • CI - php4, Symfony - php5
    • dopalenie jakimś eAcceleratorem pewnie polepszyło by wyniki
    • Symfony ssie w każdym zestawieniu (Michał Mech będzie wkrótce na niego nawracał na swoim nowym blogu)
    • z testami tak to bywa, że są mniej lub bardziej wiarygodne, tudzież należy się wczytać w wyniki i odpowiednio je zinterpretować

    Jeszcze jedno zestawienie (po francusku), tym razem cakePHP, django i Ruby on Rails.

    Dla przypomnienia poprzedni znany test Symfony, Ruby on Rails i django.

  • 7 Comments
  • Filed under: PHP
  • 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)

  • 15 Comments
  • Filed under: PHP
  • Code Igniter 1.5.0 wydany

    Dzisiaj wydana została oficjalna wersja (po kilku betach) mojego ulubionego frameworka Code Igniter w wersji 1.5.0. Co nowego mamy w nowej wersji?

    Przede wszystkim została dorzucona obsługa cache klasy Database. Yea, to jest to co tygryski lubią najbardziej :) Strasznie mnie to cieszy bo już przymierzałem się do przerobienia mojej starej klasy (cache podobny jak w Open Power Driver) na zgodną z CI. Nie mniej małe poprawki mnie nie ominą gdyż nowa funkcjonalność nie przewiduje ustawiania cache na określoną ilość czasu (tylko system cache/czyść cache), a takiego sposobu często używam.

    DB utility to rozszerzenie klasy DB, teraz w bajecznie prosty (czyli zupełnie normalny dla Code Ignitera) sposób możemy zrobić sobie backup, eksport w CVS lub XML. Biblioteka DB została tez rozszerzona o transakcje oraz parę mniejszych funkcji i poprawek.

    Z nowych bibliotek warto też odnotować klasy UserAgent, Profiler i FTP, ponadto helper do emotek :), generowania tabel, kilkanaście poprawek oraz zmieniony sposób ładowania i rozszerzania bibliotek.

    Pełna lista zmian - changelog
    Nowy manual - user guide
    Nowa wersja - Code Igniter 1.5.0

    Biblioteka Riklaunima - Kurs Code Igniter

  • 0 Comments
  • Filed under: PHP