Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Symfony vs Zend Framework
Forum PHP.pl > Forum > PHP > Frameworki
Sokal
Hej,

Który framework według Was jest lepszy? Symfony czy Zend? I dlaczego?
dr_bonzo
A moze zmien pytanie na:
Do jakich projektow uzywacie ZF/SF i dlaczego akurat ten FW do tego projektu?

bo takto flame gwarantowany smile.gif
Sokal
Może to i lepiej, że się zaraz będą się bić.

Przynajmniej poznam(y) zalety jak i wady tongue.gif
athabus
Wybrałeś dwa tak skrajne frameworki, że nawet nie ma czego porównywać.
Ja znam tylko ZF - i jest to dosyć przyjemny punkt do wyjścia do pisania aplikacji, który musisz sam sobie poskładać do kupy i rozbudować o swoje klasy.

Co do Symfony, w którym zaznaczam nic nie napisałem, a znam go tylko teoretycznie z ich manuala, to jest kompletny szkielet aplikacji ze zintegrowanym ORM rozbudowaną konfiguracją itp.

Generalnie musisz poświęcić więcej czasu aby poznać Symfony, ale potem aplikacje będziesz budował jak z klocków. W ZF jest prostszy na początku, i możesz wybrać jedynie te elementy z których chcesz korzystać. Z drugiej strony musisz sam zaimplementować wiele rzeczy takich jak chociażby obsługa formularzy (co w symfony masz "out of the box").

Symfony z tego co się orientuje to jest zlepek różnych rozwiązań (np. Propel), który tworzy coś jakby gotową platformę RAD. ZF daje ci więcej elastyczności (sam wybierasz jakie komponenty chcesz zintegorować itp), ale z drugiej strony musisz sam rozbudować go o potrzebne ci rozwiązania, co zajmuje więcej czasu. Jeśli np. Chcesz korzystać z bazy danych to albo korzystasz z wbudowanych klas albo integrujesz sobie jakiegoś ORM'a. W Symfony masz od razu Propel'a, ale z drugiej strony jak nie chcesz z niego korzystać to jest mała "kupa".

Porównując co jest lepsze a co gorsze można jedynie wywołać flame tak jak mówi dr_bonzo. Po prostu są to dwa różne podejścia do idei czym ma być framework.
pawel_k
Cytat(athabus @ 9.06.2007, 23:09:06 ) *
W Symfony masz od razu Propel'a, ale z drugiej strony jak nie chcesz z niego korzystać to jest mała "kupa".
nieprawda, jeśli nie chcesz korzystać z propela to tracisz aż/tylko generatory (możesz też mieć doctrine zamiest propela i korzystac z generatorow).

ja używam symfony jako framework a ZF jako klasy uzupełniajace, bo ZF jako framework dla mnie jest slaby, ale jako zbior klas realizujacych funkcjonalnosc wykraczajaca poza zadania frameworka (np. klasy Zend_Search czy Zend_Json) jest rewelacyjny smile.gif
mike
Pierwsza podstawowa różnica jest taka.
Zend Framework to nie jest framework.

Framework to (jak już ktoś wyżej wspomniał) kompletne narzędzie pozwalające zbudować gotową aplikację. Symfony niczego nie brakuje, siadasz i po godzinie masz bardzo zaawansowane podstawy aplikacji, łącznie z panelem administracyjnym.
A po godzinie w Zend Framework masz dopiero listę tego czego brakuje Ci w samym frameworku a czego potrzebujesz żeby kontynuować.
Zend Framework to zbiór klas tego podobnego typu co ezComponents.


P.S.
No i faktycznie wybrałeś skrajne, mało porównywalne rzeczy.
To tak jakby porównywać samochód do warsztatu samochodowego.
Sokal
No to dobrze że wybrałem Symfony smile.gif (oprócz mojego Harmony)

P.S.
Nie wiedziałem nic o Zendzie i dlatego się pytałem... Warsztat samochodowy... hmmm.... tongue.gif
kwiateusz
bardziej już sklep z częściami a Ty robisz za warsztat i składasz to do kupy tongue.gif
pawel_k
http://www.symfony-project.com/weblog/2007...orld-usage.html polecam przeczytać:)
superfrajer
Dlatego lepiej pisac sobie wlasny kod smile.gif
mike
Cytat(superfrajer @ 12.06.2007, 14:28:24 ) *
Dlatego lepiej pisac sobie wlasny kod smile.gif
laugh.gif
Najbardziej lamerskie podejście do tematu.
Własny kod najlepiej jest pisać w niewielu przypadkach. Zdarzyło Ci się pisać coś większego niż licznik?
superfrajer
Takie frameworki to zabawki do robienia stron typu fanklub mojej babci albo blog o kotach. Za duzo tam badziewia, ktore tylko obciaza sprzet. Do duzych projektow lepiej jest przygotowywac rozwiazania dedykowane.

Pozdrawiam
Sokal
@superfrajer
Ty chyba nie wiesz co mówisz tongue.gif Taki framework znacznie przyśpiesza tworzenie aplikacji... Weź sobie zobacz co to takiego framework, na początek polecam CI bo jest baardzo prosty smile.gif Albo mój Harmony
NoiseMc
Cytat
Pierwsza podstawowa różnica jest taka.
Zend Framework to nie jest framework.

To jest framework ... a to co oferuje Symfony to moim zdaniem Framework + Scaffold czyli szkielet + opakówka tworzacy razem aplikacje out-of-the-box, ktora trzeba tylko skonfigurowac.

Co do tematu, nie korzystalem z Symfony ale wydaje mi sie ze do szybkiego pisania duzych aplikacji o malym poziomie skomplikowania jest najlepszy. Jezeli projekt wymaga bardziej szczegolowego podejscia wtedy ZF jako ze mozna do kazdej aplikacji dobudowac sobie zestaw dodatkowych komponentow (Scaffold) po swojemu.
pawel_k
Cytat(NoiseMc @ 12.06.2007, 15:00:26 ) *
Co do tematu, nie korzystalem z Symfony ale wydaje mi sie ze do szybkiego pisania duzych aplikacji o malym poziomie skomplikowania jest najlepszy. Jezeli projekt wymaga bardziej szczegolowego podejscia wtedy ZF jako ze mozna do kazdej aplikacji dobudowac sobie zestaw dodatkowych komponentow (Scaffold) po swojemu.
widać że nie korzystałeś z symfony. ten framework jak mało który nadaje się do pisania dużych aplikacji, a z rozbudową nie ma żadnego problemu. nie trzeba do tego opisywać wielu rzeczy jak to jest przy zf
superfrajer
Sokal: A Ty nie umiesz czytac ze zrozumieniem. Wiec tak, framework przyspiesza tworzenie skryptow, wiec jest jak znalazl dla studentow. Dzieki nim moga szybciej na piwo zarobic. Do malych projektow jak najbardziej.
Sokal
@up
ten nick to chyba nie z przypadku winksmiley.jpg
strife
Cytat(superfrajer @ 12.06.2007, 15:27:44 ) *
Sokal: A Ty nie umiesz czytac ze zrozumieniem. Wiec tak, framework przyspiesza tworzenie skryptow, wiec jest jak znalazl dla studentow. Dzieki nim moga szybciej na piwo zarobic. Do malych projektow jak najbardziej.


No to studenciaki tym małym projektem, chyba już zarobili na piwo co ? laugh.gif Wydaje mi się, że dyskusja z Tobą jak nie miałeś większej styczności z żadnym FW nie ma najmniejszego sensu.
mike
Cytat(NoiseMc @ 12.06.2007, 15:00:26 ) *
Co do tematu, nie korzystalem z Symfony ale wydaje mi sie ze do szybkiego pisania duzych aplikacji o malym poziomie skomplikowania jest najlepszy.
Mylisz się.
Symfony doskonale pasuje do aplikacji o małym, ale i też dużym stopniu szczegółowości i skomplikowania.
Właśnie to ograniczenie, które wprowadzasz to częsty błąd ludzi którzy nie znają Symfony (i ogólnie frameworków). Jakie znazcenie dla szkieletu ma czy Ty na tym zrobisz bloga czy dowolny potężny system. Dobry framework ma to gdzieś tongue.gif

Cytat(NoiseMc @ 12.06.2007, 15:00:26 ) *
Jezeli projekt wymaga bardziej szczegolowego podejscia wtedy ZF jako ze mozna do kazdej aplikacji dobudowac sobie zestaw dodatkowych komponentow (Scaffold) po swojemu.
A w Symfony nie można mieć swoich komponentów? Owszem, że można. Mało tego, częst nawet nie trzeba pisać tongue.gif Symfony plugins.
NoiseMc
Musze sprobowac bede mial wiecej do powiedzenia, poki co w pracy Zend jest wszedzie w sumie dopiero co zaczelismy z Frameworkiem, Studio juz mamy od jakiegos czasu, a przelozony moj napalil sie teraz na Zend Box na Symfony go nie przestawie na bank winksmiley.jpg Moge sobie w domu ewentualnie pokombinowac i tak zrobie
superfrajer
@strife: no naprawde jest sie czym podniecac. jakis beznadziejny katalog linkow...
mike
Taki OT do wszystkich.
Potraktujmy ~superfrajera tak jak na to zasługuje i jak sam się tyułuje. Jak frajera.
W końcu ktoś kto pieni się tylko na każdy temat pisząc tylko i wyłacznie na Hydeparku wiele do powiedzenia nie ma, prawda tongue.gif

W tym wątku i w innych.
superfrajer
mike: wiesz, to ze jestes moderatorem nie daje Ci automatycznie prawo do obrazania. To jest moja sprawa gdzie pisze i nic Tobie do tego. Uszanuj, ze ktos moze miec inne zdanie od Twojego. Korzystajac z Twojej rady w stopce koncze swoje wypowiedzi w tym temacie.

Pozdrawiam
kwiateusz
Cytat(superfrajer @ 12.06.2007, 18:28:12 ) *
@strife: no naprawde jest sie czym podniecac. jakis beznadziejny katalog linkow...

który odwiedzają setki tysięcy userów dziennie... i żeby go napisac od podstaw nie starczyłoby Ci możliwe że życia badź mocy maszyn a na pewno motywacji...

zgadzam sie z mikem, nie ma sensu dalej prowadzić polemiki na ten temat bo widać superfrajer ma już utarte zdanie (błędne co błędne), ale ma prawo i niech sobie ma...
pejotr
ładnie się w google wypozycjonował wpis smile.gif
tak czy inaczej bawiłem się wcześniej Zendem, nie dawno zrobiłem sobie tego tutoriala Jobeet od Symfony i poiem że wielki różnic to nie widzę. Chyba ktos kiedyś napisał przy młodej wersji ZF że jest nie pełna i tak bez sensu zostało.
Z mojej perspektywy wygląda to tak:

Symfony
+ dokumentacja i spolecznosc
+ doctrine
+/- admin generator
- potrzebny dostep do shella
- routing

Zend:
+ nie ma cudów z genratorow
+ mozliwosc instalacji doctrine
+ dowolny układ katalogów

i tyle
phpion
Cytat(pejotr @ 23.02.2009, 12:05:01 ) *
bawiłem się wcześniej Zendem, nie dawno zrobiłem sobie tego tutoriala Jobeet od Symfony i poiem że wielki różnic to nie widzę

W takim razie nie ma sensu czytać dalej Twojego postu gdyż nie będzie na wysokim poziomie merytorycznym. Jeżeli nie widzisz różnic między tymi FW to jakich Ty różnic byś się spodziewał?

//Edit:
Przeczytałem Twoje + i - i się nie pomyliłem...
Noddi
Cytat(pejotr @ 23.02.2009, 10:05:01 ) *
Zend:
+ nie ma cudów z genratorow
+ mozliwosc instalacji doctrine
+ dowolny układ katalogów


Czyli według Ciebie Zend Framework w ogóle nie ma wad, jest frameworkiem doskonałym?

1. A jakie to cuda powstają z generatorów? Generatory w większości przypadków(nie w każdym) pozwalają na dużo szybsze pisanie całej aplikacji.
2. Czy można w ogóle to uznać za +? W Symfony masz Propel i Doctrine, które są oficjalnie wspierane. A Zend_Db znowu nie jest takie wspaniałe.
3. W przeważającej ilości przypadków jest to minus, gdy np. ktoś po Tobie przejmie ten kod, to minie sporo czasu zanim się zorientuje w całej strukturze katalogów. W Symfony ten problem nie występuje, bo jest wszystko z góry "narzucone" i każdy kto przejmie po Tobie kod będzie wiedział co gdzie się znajduje.
pejotr
Cytat(phpion @ 23.02.2009, 10:32:47 ) *
W takim razie nie ma sensu czytać dalej Twojego postu gdyż nie będzie na wysokim poziomie merytorycznym. Jeżeli nie widzisz różnic między tymi FW to jakich Ty różnic byś się spodziewał?

//Edit:
Przeczytałem Twoje + i - i się nie pomyliłem...


no to pokaż mi te różnice.. co takiego zauważasz w Symfony oprócz generatorów i narzuconej struktury? no jest fajny etap deweloperski z logami itd. ale cóż więcej ?
Nie wiem jak jest naprawdę ale czytałem że ludzie mja problemy z odpaleniem aplikacji opartej o Symfony na serwerach współdzielonych. To jednak wada.

Cytat(Noddi @ 23.02.2009, 10:52:26 ) *
Czyli według Ciebie Zend Framework w ogóle nie ma wad, jest frameworkiem doskonałym?

1. A jakie to cuda powstają z generatorów? Generatory w większości przypadków(nie w każdym) pozwalają na dużo szybsze pisanie całej aplikacji.
2. Czy można w ogóle to uznać za +? W Symfony masz Propel i Doctrine, które są oficjalnie wspierane. A Zend_Db znowu nie jest takie wspaniałe.
3. W przeważającej ilości przypadków jest to minus, gdy np. ktoś po Tobie przejmie ten kod, to minie sporo czasu zanim się zorientuje w całej strukturze katalogów. W Symfony ten problem nie występuje, bo jest wszystko z góry "narzucone" i każdy kto przejmie po Tobie kod będzie wiedział co gdzie się znajduje.

Nie uważam że jest idealny bo nie znam wszystkich ale:
Ad1. Może moje uprzedzenie do czegoś co się robi samo, ale wywala tego na konsole tyle że odechciewa się ogarniania.
Ad2. można używac doctrine i propela do ZF trzeba dodać ale nie jest to większym problemem
Ad3. Jest 1 zalecana struktura katalogów i mając na względzie że ktoś będzie ten kod dalej rozwijał warto ją zastosować.

//EDIT:
Kurcze, nie pisze tego żeby rozpętać jakiegoś flame'a. Po prostu chcę wiedzieć dlaczego Symfony a nie Zend, co takiego jest w Symfony że się pisze o nim jak o frameworku a o Zendzie jak o zestawie libów? No nie wierze że tylko te generatory o tym decydują. Chciałbym poznać konkretne argumenty dlaczego miałbym zacząć korzystać z Symfony smile.gif
Noddi
Prowadzimy tutaj merytoryczną dyskusję, każdy ma swoje argumenty, każdy używa i lubi inny framework, więc nie ma się co gorączkować. Zarówno Symfony jak i Zend mają swoje wady i zalety. Napewno argumentem za używaniem Symfony jest to, że używa go Yahoo, a także niedługo Dailymotion - http://www.symfony-project.org/blog/2009/0...ered-by-symfony.
pejotr
a z zenda korzysta niezatapialny IBM smile.gif
nieraczek
Ja robiłem strony w tych frameworkach dla siebie - w celu poznania tych frameworków, z których jeden niby nie jest frameworkiem, ale jednak w nazwie to słowo ma winksmiley.jpg. Poza Zendem i Symfony nie miałem stycznosci z innymi frameworkami.

Zend w ogóle nie przypadł mi do gustu - strukture katalogów trzeba tworzyć samemu, cały dzień nad tym spędziłem czytając na różnych stronach jak to powinno wyglądać a na każdej stronie był zaprezentowany nieco inny układ, mam też wątpliwości czy jakbym zrobił profesjonalną stronę w zendzie to czy inni programiści potem połapaliby się w mojej strukturze katalogów jeśli byłaby ona jakaś odbiegająca od norm. Poza tym wszędzie są tylko Zend_ to, Zend_ tamto - trzeba WSZYSTKIEGO szukać w ich manualu, a opis każdego Zend_ jest na całą stronę, pisany bardzo technicznym językiem i do tego moim zdaniem bardzo zaawansowanym angielskim - bez internetowego słownika nie da rady zrozumieć, zresztą czasem odnosiłem wrażenie, że nawet jakby pisali po polsku to nie rozumiałbym w wielu miejscach o co im chodzi. Do tego brak forum na ich stronie, wprawdzie mają coś co się zwie 'mailing list', ja jednak wolę tradycyjne forum winksmiley.jpg Poza tym brak automatycznego generowania formularzy do dodawania, usuwania, modyfikacji wierszy tabel w bazie danych.

Odnośnie Symfony to podoba mi się o wiele, wiele bardziej. Fantastyczna sprawa z generowaniem formularzy usuwających, dodających itd. wiersza tabel w bazie danych, admin generator do tworzenia strony administracyjnej jest też super. Plusem jest też także gotowy układ katalogów, przewodnik stworzenia aplikacji w 24 h - super, do tego dochodzi pisana obrazowym i prostym angielskim dokumentacja, z tego co widziałem to także powstaje powoli na stronie symfony polska wersja. Do wad zaliczam konieczność stosowania konsoli - fajnie by było jakby stworzyli program w stylu Microsoft Visual Web Developer dla użytkowników windowsa i linuxa do tworzenia stron w symfony zamiast korzystania z konsoli. Wadą jest konieczność czyszczenia cache po każdej modyfikacji klasy itp., denerwujący jest także rozmiar symfony - sam folder z symfony ściągnięty z ich strony ma ponad 10 MB - ładowanie tego na serwer i usuwanie z serwera trwa bardzo długo. Wadą też jest społeczność symfony - ich forum - społeczność symfony jest jakaś niechętna udzielaniu pomocy, wiekszość tematów na ich forum jest bez odpowiedzi. Wadą jest też domyślnie wbudowany propel, muszę zmieniać na doctrine, które zdecydowanie bardziej przypomina normalne zapytania sql.

Wspólną wadą obu frameworków jest to, że znajomość nawet obiektowego php nie wystarczy - do każdego z tych frameworków trzeba uczyć się ich że tak powiem 'zmodyfikowanego' php i ich funkcji.

W każdym razie wolę Symfony. smile.gif

Tak w ogóle to Zend i Symfony to najpopularniejsze frameworki czy jest jeszcze jakiś popularniejszy ? winksmiley.jpg
dtrevo
Uczyłem sie podobnie jak mój poprzednik obu frameworków, są to dwa najpopularniejsze frameworki, co do tego chyba wszyscy sie zgodzą. Symfony jest ogromnym narzędziem, świetnie dopracowany, a na nauke trzeba poświęcić wiecej niz na sam PHP. Zend to jak poprzednicy mówili zbiór klas, który musisz sobie sam skonfigurować. Jednak ta opcja bardziej mi przypadła do gustu, przy symfony wszystko wydawało mi sie 'sztywne', zend'a moge sobie dowolnie skonfigurować, napisałem sobie skrypt w bash'u, który stworzy poczatkowy projekt taki jaki chce, taki jaki mi odpowiada. Ma lepszą dokumentacje. Pozdrawiam
pgrzelka
Cytat
strukture katalogów trzeba tworzyć samemu, cały dzień nad tym spędziłem czytając na różnych stronach jak to powinno wyglądać a na każdej stronie był zaprezentowany nieco inny układ
zainstaluj sobie zend studio, klikasz File -> New -> Zend Framework Project i dostajesz podstawowy szkielet aplikacji z utworzonymi folderami. Polecam ten program, bardzo ułatwia pracę przy tym frameworku, i ogólnie to jeden z najlepszych edytorów php.

Cytat
mam też wątpliwości czy jakbym zrobił profesjonalną stronę w zendzie to czy inni programiści potem połapaliby się w mojej strukturze katalogów jeśli byłaby ona jakaś odbiegająca od norm
całą strukturę katalogów "opisujesz" w bootstrapie, wystarczy tam zajrzeć i już wiadomo o co mniej więcej chodzi smile.gif

Cytat
Poza tym wszędzie są tylko Zend_ to, Zend_ tamto
Zend narzuca nazewnictwo plików i klas, jak klasa nazywa się Zend_Db_Table to wiesz że znajduje się w Zend/Db/Table.php


w tym frameworku tylko jedno mi przeszkadza, bardzo mała polska społeczność, na forum zend-framework.pl ciężko jest dostać odpowiedź na trudne pytania.

__________________________________
edit

szkielet aplikacji wygenerowany za pomocą zend studio,
www.aiba.pl/misc/fw.zip
Pr0100
Odnośnie dokumentacji Symfony to moim zdaniem jest ona o wiele za krótka. Autor wszystko tłumaczy bardzo łopatologiczne, ale o niektórych sprawach w ogólne nic nie wspomina lub mówi jedynie, że takie coś instnieje. Przykładowo: FormFormatter. Znalezienie informacji o tym w API/google nie stanowi dla mnie problemu ale wolałbym gdyby wszystko było opisane w oficjalnej dokumentacji.


Cytat
zainstaluj sobie zend studio, klikasz File -> New -> Zend Framework Project i dostajesz podstawowy szkielet aplikacji z utworzonymi folderami. Polecam ten program, bardzo ułatwia pracę przy tym frameworku, i ogólnie to jeden z najlepszych edytorów php.


nie wszyscy chcą płacić $399 rocznie aby móc sobie wykreować szkielet aplikacji. Osobiście wole korzystać z darmowego NetBeansa smile.gif


Wracając do sedna tematu, co sądzicie o wydajości obu frameworków?
melkorm
Cytat
nie wszyscy chcą płacić $399 rocznie aby móc sobie wykreować szkielet aplikacji. Osobiście wole korzystać z darmowego NetBeansa


szkielet aplikacji masz za free winksmiley.jpg

reszte masz praktycznie do przekopiowania z tutoriala i masz działający FW :]
AxZx
ja wczoraj pobrałem najnowsze zend studio i zend framework 1.8.1
utworzyłem nowy projekt ZF w zend studio i niestety ale nie było wersji kompatybilnej z 1.8. były 1.5 1.6 i 1.7.
z tego właśnie powodu projekt się uruchamia ale z metodami które są depracted.
także słabo to wszystko wygląda.
batman
Cytat(kierzniak @ 20.05.2009, 16:51:10 ) *
W ostanim zendzie jest zend_tool ktory sam tworzy strukture katalogow dokladnie jak w symfony.
Jako użytkownik oraz umiarkowany fan ZF, uważam że Zend_Tool co najmniej im nie wyszedł. Zgodzę się, że znacznie ułatwia tworzenie projektu, jednak daleko mu do doskonałości. Prosty przykład. Dodanie Zend_Layout trzeba zrobić ręcznie, edytując kilka plików. Niemniej jednak należy pochwalić chłopaków z Zenda, że się starają. Najpierw stworzyli ogromną bazę modułów, dzięki którym można zrobić praktycznie wszystko, a teraz pracują nad zrobieniem z ZF prawdziwego (nie tylko z nazwy) frameworka.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.