Postanowiłem się zabrać za naukę jakiegoś systemu framework dla języka PHP. Wybór jest ogromny, jednak po zapoznaniu się z opiniami innych programistów, jak i wymaganiami pracodawców w tym zakresie, wybór zawęziłem do Yii PHP Framework oraz Symfony. W poście tym postaram się wyszczególnić wszelkie za i przeciw.
Yii PHP Framework 1.0.2 | Symfony 1.3.2 |
Powyższe porównanie jest dość skromne i jedynie teoretycznie (dane te nie były faktycznie testowane przeze mnie, a stanowią jedynie moje odczucia do tych systemów).
W celu lepszej analizy wypadałoby napisać kilka benchmarków, lecz nie mam większego doświadczenia przy wykorzystaniu tych systemów – w końcu dopiero przymierzam się do rozpoczęcia pracy w którymś z nich. Dlatego w porównaniu oparłem się jedynie na testach i analizach dostępnych w Internecie.
Podsumowanie
Niewątpliwie oba powyższe framework są bardzo dobre. Dają obsługę wszystkiego czego programiście potrzeba przy pracy nad projektem, jak i wciąż są rozwijane i ulepszane.
W porównaniu można by także uwzględnić Zend Framework, jednak słyszałem wiele negatywnych opinii o małej wydajności, dlatego zrezygnowałem z niego na starcie.
Na chwilę obecną zdecydowałem się zabrać za Yii. Powodem jest duża wydajność i szybkość działania, jak i prostota nauki. Jako iż jestem leniwy, wybieram drogę na skróty :-)
[..]większość dostarczonych przez autorów możliwości nigdy się nie wykorzystuje – jedynie obciążają system i zmniejszają wydajność[..]
To można zarzucić prawie wszystkim frameworkom.
Dokładnie. Ma to też swoje zalety, ponieważ czasem potrzebujemy rzadkiej funkcjonalności, a okazuje się, że framework ma już ją wbudowaną i nie trzeba samemu pisać kolejnego koła :)
w symfony dochodzi problem z kompatybilnoscia wsteczna – spory problem, ile to juz razy byla ona de facto lamana (czytaj – migracja zajela by tyle czasu, ze bylo to zajecie kompletnie bez sensu)…
framework, ktory jest jednym wielkim generatorem wszyskiego musi miec wieksze obciazenie niz cos co wspomaga, a nie generuje gotowce. KohanaPHP jest moim zdaniem bardzo przyjemnym frameworkiem, wlasnie dlatego, ze mam pelna kontrole nad aplikacja i systemem. jak cos mi sie nie podoba, to jestem w stanie bardzo szybko poprawic domyslna funkcjonalnosc. no i nie musze czytac 40 stron dokumentacji aby stworzyc formularz, zrobic walidacje i zapisac dane do bazy.
yii mam zamiar poznac, wiec nie wyrokuje na razie. wstepnie wyglada ok, tj. jest gdzies w polowie drogi miedzy KohanaPHP a symfony. czyli jest lekka i wspiera generowanie roznych rzeczy, ale jest to trzymane w ryzach i duzo latwiej kontrolowac aplikacje niz ma to miejsce w symfony.
jesli chodzi o popularnosc frameworkow, to ZF ma duza bo jest to Zend – ma to spore znaczenie np. dla firm, zatrudnienia, ofert pracy i tak dalej. symfony ma duza, bo jest w miare latwa w napisaniu pierwszych aplikacji – generatory nie wymagaja wiedzy, tylko prostych tutoriali. plus symfony/ZF maja opinie frameworkow bardziej PRO niz reszta. w zwiazku z tym sporo sie przy tych FW dzieje, ludzie sie nimi interesuja. a inne, takie jak Yii czy KohanaPHP zyja troche w tle – sa raczej dla tych, ktorzy swiadomie wybieraja ten, a nie inny framework, bo dokladnie znaja swoje potrzeby i wola na tych FW opierac wlasne rozwiazania dajace im sporo wolnosci przy pisaniu aplikacji, niz siedziec na ZF czy symfony czujac ich ograniczenia.
a nawet jesli idee przyswiecajace danemu FW sa swietne, to nie znaczy, ze praktycznie ich uzywanie bedzie wygodne. po prostu trzeba wybrac taki FW w ktorym sie najlepiej czujemy. nie wazne co to bedzie, grunt to tworzyc dobre aplikacje w wygodny dla nas sposob. dlatego benchmarki czy zestawienia costam VS costam sa srednio przydatne. nic nie powiedza o tym co najwazniejsze: wygodzie kodowania.
Na symfony nie mialem jeszcze okazji pracować, jednak przy wyjściu nowej wersji bardzo możliwe, że podejdę do zabawy ;) do Zenda jakoś nieszczególnie mnie ciągnie.
Jako ciekawostkę dodam, iż będąc ostatnio na rozmowie kwalifikacyjnej na stanowisko programisty PHP dowiedziałem się, że firemka ta zamierza budować aplikacje głównie w oparciu o Yii. Stąd moje zainteresowanie tym FW :)
Yii jest super! Kiedyś pisałem w PRADO, następnie postanowiłem rozpocząć naukę kolejnego frameworka. Zacząłem uczyć się zenda, symfony i yii, po tygodniu dla każdego. Yii zacząłem ostatnie i juz przy nim zostałem. Polecam każdemu kto poszukuje idealnego frameworka. :)
Odświeżając nieco temat.
Jakiś czas temu, miałem więcej wolnego czasu i poświęciłem go na poznanie Yii i Kohany… Niestety, tak samo jak Symphony i Zend – nie podeszły mi.
Drażnią mnie niektóre rozwiązania, sposoby robienia tego i owego.
Wciąż pozostaję przy swoim – Kamil miał okazję go obejrzeć – a od tego czasu jeszcze się w nim ciut pozmieniało :) (trzeba mu będzie wysłać kolejną wersję do obejrzenia :D)
@Michal: Jak tylko uporam się z Mechaniką techniczną, jakimiś momentami bezwzględnymi i innymi pierdołami to z chęcią przetestuję nową wersję tego frameworka :-)
Swoją drogą, coraz bardziej przekonuję się do różnego rodzaju fw. Bardzo ułatwiają życie, wszystko jest wbudowane, życie staje się łatwiejsze. Z drugiej strony to uczy lenistwa i nie zawsze wiem co dzieje się w tle, wywołując jakąś metodę/klasę ;)
Choć tak jak kiedyś nie korzystałem z żadnych fw w JavaScript, tak dzisiaj nie mogę się bez nich obejść. Myślę, że niedługo także i do PHP będę miał takie podejście, co ma swoje dobre i złe strony.
Też mnie wkurzał kiedyś brak wiedzy „co dzieje się w tle” – dlatego napisałem swój, by wiedzieć.
Od początku roku siedzę w symfony, ogólnie to jest super bo jest doctrine i baza danych w schemie (cala baze mam zdefiniowana w pliku yaml), ale np gdy przychodzi np do zrobienia bardzo zagniezdzonego formularza to jak dla mnie to wtedy przychodzi prawdziwa męczarnia. Inny minus aktualnie mam 5 hostingów, ale tylko jeden ma shella i na tym hostingu symfony czasami strasznie muli… Dlatego co jakis czas bawie się Yii, ale tu znów trafiam na takie pierdoły które mnie zniechęcają, np jedną opisałem tutaj:
http://www.yiiframework.com/forum/index.php?/topic/9901-cactivedataprovider-many-to-many-and-contition/
nie mogę w prosty sposób dodać criteria aby ograniczyć wyświetlanych produktów do danej kategorii, ktoś podał rozwiązanie, ale…
Właśnie stoję przed wyborem jaki framework wybrać do budowy strony. i decyzja padła na symfony choć obawiam się czy będzie wystarczająco szybki
Symfony 2 zdecydowanie warto poznać :) Gdybym na dzień dzisiejszy miał wybierać framework to zapewne padłoby właśnie na Symfony (choć Yii jest dużo prostszy w nauce, lecz co z tym związane, nadaje się raczej do mniejszych projektów).