Frameworki php
- Mateusz Żeromski | 2008-05-05 | Php
Na początek link dla niewiedzących co oznacza pojęcie framework: http://pl.wikipedia.org/wiki/Framework, oraz MVC http://pl.wikipedia.org/wiki/MVC.
Jak już każdy wie o czym mowa to przejdę do konkretów. Nie będę się rozwodził nad tym czy frameworki pomagają w pracy czy nie. Każdy kto zawodowo pracuje jako programista w końcu będzie musiał skorzystać z frameworków, czy tego chce czy nie, dlatego jeżeli ktoś uważa, że korzystanie z gotowych rozwiązań jest złe to nie będę nikogo przekonywać.
Frameworki php – ogólnie
W php jest niezliczona ilość frameworków (lista ponad 40: http://www.phpwact.org/php/mvc_frameworks), każdy z nich ma jakieś wady i zalety, chociaż stwierdzam, że większość frameworków ma więcej tych gorszych cech. Dzieje się tak dlatego, iż osoby nie mające doświadczenia w programowaniu zabierają się do tworzenia nowej rzeczywistości nie mogąc pojąć istniejących rozwiązań. Tutaj muszę zaznaczyć, że sam żadnego nie napisałem ponieważ istnieje wiele dobrych, darmowych rozwiązań w internecie. Dlatego też, co jakiś czas powstają nowe ’szkielety’, opisywane przez twórców jako rewolucyjne – zazwyczaj jest to jakieś ‘widzimisie’ paru programistów, którzy widząc ograniczenia w istniejących frameworkach piszą nowe.
Poniżej opiszę parę frameworków, z którymi miałem styczność – kolejność alfabetyczna, przy nazwach wpisuję ocenę od 1 do 5 :)
Cakephp – 3,5
- Strona projektu – http://cakephp.org/
- Wikipedia – http://pl.wikipedia.org/wiki/CakePHP
Jest bardzo popularny, czasem nawet w ogłoszeniach o pracę możemy znaleźć wzmiankę o znajomości CakePhp. Informacje techniczne można znaleźć na wikipedii.
Framework ten polecam na początek przygody z tymi “tworami”. W nim jest dobrze zaimplementowana struktura MVC, dzięki czemu w przyszłości nie będziemy mieli problemu z poznawaniem innych. Warto go znać, bo tworząc aplikację na szybko Cakephp jest bardzo pomocny. Jeżeli chodzi o ograniczenia to CakePhp jest pod tym względem bardzo liberalny – pomimo sztywnych ram tworzenia aplikacji w każdym momencie możemy wywołać swoją procedurę. Brak szablonów pozwala nam na wpisanie w jakiejkolwiek części plików naszego kodu np.:
<?
for($i=0; $i<60; $i++){
…
}
$name=”blablabla”;?>
Jest to oczywiście wada i zaleta, ale patrząc z perspektywy czasu, mogę stwierdzić że takie działanie nie powinno mieć miejsca w idei MVC.
Wersja stabilna Cake to 1.1 i tą polecam. Na stan obecny (maj 2008) wersja 1.2 jest w stanie ‘beta’ i nie jednokrotnie pojawią się problemy podczas korzystania z unowocześnień wprowadzonych w tej wersji, dodatkowo nie były prowadzone żadne aktualizacje od stycznia 2008.
Podsumowując: CakePhp jest dobry dla małych nierozwojowych aplikacji, mało złożonych, np: blog, mały cms. Jednak gdy przyjdzie nam tworzyć coś większego cakephp okaże się ogranicznieniem.
Codeigniter, kohana – 2
- Strona projektu – http://codeigniter.com/, http://kohanaphp.com/
- Wikipedia – http://pl.wikipedia.org/wiki/Code_Igniter
Na temat Codeigniter wiele nie mogę napisać, ponieważ tylko sprawdzałem czy warto używać tego czegoś. To było po tym jak usłyszałem gdzieś wzmiankę o tym. Ogólnie nie polecam tego frameworka, gdyż jest mało profesjonalny i zaawansowany.
Kohana – ten framework powstał na bazie powyższego – sam fakt powinien wnioskować o tym, że nie warto poświęcać czasu na niego. Być może w przyszłości kohana rozwinie się i będzie profesjonalnym frameworkiem z duża społecznością i dobrą dokumentacją. Ale aktualnie projekt jest w wczesnym stadium rozwoju przez co ilość błędów do wykrycia jest duża, oraz lista poprawek również nie mała. Na wikipedii również brakuje wzmianki o tym frameworku.
Symfony – 4,5
- Strona projektu – http://www.symfony-project.org/
- Polska strona projektu – http://www.symfony.pl/
- Wikipedia – http://pl.wikipedia.org/wiki/Symfony
Moim zdaniem Symfony jest to najbardziej zaawansowany framework w php. Posiada bardzo rozbudowaną strukturę, jego instalacja wymaga zmian w konfiguracji php. W porównaniu do konkurencji ten framework bez problemu pobija wszystkich. Jedyną wadą jest prędkość – jednak można przyśpieszyć działanie Symfony poprzez inne moduły i skrypty.
W symfony możemy tworzyć aplikacje a do nich moduły – nie ma tutaj ograniczenia, a struktura aplikacji w dalszym ciągu pozostanie czytelna. Dla dużych i robudowanych aplikacji, np intranet wybór symfony według mnie jest najlepszy. Aby biegle obsługiwać tego frameworka potrzeba ok 30 godzin pracy. Po więcej informacji zapraszam na polską stronę projektu, gdzie jest spolszczona dokumentacja.
Projekt jest rozwojowy i bardzo warto go znać.
Zend framework – 4
- Strona projektu – http://framework.zend.com/
- Polska strona projektu – http://zend-framework.pl/
- Wikipedia – http://pl.wikipedia.org/wiki/Zend_Framework
Zend Framework jest chyba najpopularniejszym frameworkiem php dostępnym w sieci. Jest on rozwijany przez otwartą społeczność pod okiem firmy Zend. Posiada budowę modułową, jest przyjemny w użytkowaniu chociaż początkujący mogą mieć pewne problemy na początku. Po pierwszych potyczkach, problemach możemy w pełni cieszyć się tym frameworkiem. Zend posiada dużą bazę modułów które można wykorzystać w innych aplikacjach nie powiązanych w żadnym stopniu z nim samym. Tutaj zalecam poznanie go, gdyż jeżeli chcemy być dobrymi programistami php musimy go znać.
Nie jest on o wiele lepszy niż cakephp, w aplikacjach jakie ja miałem wykonań, dlatego też pominąłem go w mojej nauce i standardowo wykonałem jakieś 2,3 tutoriale, więc nie mogę więcej napisać jak powyżej. Lecz jeżeli dziś miałbym zadanie napisać średnio rozbudowaną aplikację w php i do wyboru bym miał Zedna i Cake wybrałbym tego pierwszego, Zend jest lepiej przemyślany w swojej budowie niż cake, i ma lepsze wsparcie.
Podsumowanie
Powyżej opisałem 4 najpopularniejsze frameworki php, oraz dowiodłem że istnieje ich bardzo dużo. Nie można jednoznacznie stwierdzić, który jest lepszy a który gorszy. Każda sytuacja wymaga od nas analizy dotyczącej potrzeb, jakie ma nam zapewnić framework. Dla małych i szybkich (czytaj: krótki termin realizacji) aplikacji – polecam Cake 1.1, dla aplikacji średnich (np forum) Zenda, a dla bardzo rozbudowanych (np intranet z modułami: forum, ogłoszenia, aukcje) Symfony.
Stanowczo natomiast odradzam używanie frameworków, które posiadają małą społeczność, są młode oraz żadna duża firma nie wspiera ich rozwoju. W innym poście postaram się porównać frameworki od strony nie tylko technicznej.
Jeszcze dodam, że jeżeli by mi przyszło pisanie aplikacji rozbudowanej, to napisałbym to w pythonie :). Ale o tym innym razem.
Tagi: cakephp, codeigniter, framework, kohana, php, symfony, zend
1 nrm 2008-06-26 23:57:35
“Kohana – ten framework powstał na bazie powyższego – sam fakt powinien wnioskować o tym, że nie warto poświęcać czasu na niego”
niezły bullshiting… nie ma jak wystawiać oceny nie mając pojęcia o produkcie.
2 Mateusz Żeromski 2008-06-28 19:09:48
Ok, masz trochę racji, zapoznam sie z tym frameworkim i napisze bardziej konstruktywną i szczegółową krytykę. Jak napisze (tak mniej więcej przed 14 lipca) dam ci znać :).
3 on 2008-06-29 00:33:47
Nie potraktuj tego źle, ale albo zacznij pisać tylko o pythonie, albo daj chlopakom wlasciwy rss do kategorii Python, albo przestan pisac na planecie Pythona ;)
4 Mateusz Żeromski 2008-06-29 08:40:50
Spoko, zainstalowałem na wordpress rozszerzenie feedburner no i pozmieniał on mi rss, juz sie poprawilem dzięki za info.
5 mrksto 2008-10-13 11:12:16
-Teoretyczneie Symphony jest może najlepszy, ale przy dużych aplikacjach nie radzi sobie – prędkość!!!.
-Kohana rzeczywiście na razie nie polecam, ale dlatego że każda nowa wersja to jakby inny framework ( v2.1 (stara), v2.2 (aktualna), 2.3(rozwojowa))
- CI – ciągle trzymają sie PHP4, nie polecam
Zatem zostaje tylko CakePHP?