[inny] [ZF2] vs [SF2], Który wybrać? |
[inny] [ZF2] vs [SF2], Który wybrać? |
18.11.2012, 22:59:42
Post
#1
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 1 Dołączył: 12.12.2010 Ostrzeżenie: (0%) |
Witam,
Z racji rozwoju frameworków czas się przeżucić na coś nowego. Pisałem w CI, Kohana, Symfony 1, teraz Zend 1 od 1,5 roku. Myślałem o Zend 2 ale to całkowicie inna struktura niż Zend 1. Postawiłem ostatnio projekcik zbudowałem sobie nowe moduły ale to inna bajka niż Zend 1. Wszystko trzeba na nowo opanować. I teraz pytanie, czy jest sens brać się za ZF2 czy nie lepiej czasem przerzucić się na Symfony 2. Pewno jest tutaj kilka osób co pisze na codzien w SF2. Jak wydajność i nauka SF2? Chcę postawić nowego CMS i taki dosyć spory CRM. Czy w SF2 występje coś do generowania CRUD (jak było w admin generator w SF1?). Proszę o info. Ten post edytował basso 18.11.2012, 23:01:27 |
|
|
18.11.2012, 23:36:28
Post
#2
|
|
Grupa: Zarejestrowani Postów: 673 Pomógł: 106 Dołączył: 31.12.2008 Ostrzeżenie: (0%) |
opornie przez dłuższy czas próbowałem się uczyć SF2, ale nie polecam. Jestem przeciwnikiem wszystko za długiego use blablablablablablablabla... i tak jeszcze kilka razy tyle
brakuje mi konsekwencji namespace do lokalizacji, może jestem oporny na wiedzę, ale w kohanie bez problemu patrzę na klasę - "aha, tam to jest" (choć szkoda że nie leci to po namespace) i zerkam w źródło i znam szczegóły działania danej funkcji. w symfony? no za grzyba nie mogłem! chcesz wejść w źródło to najpierw 3 razy odpalasz folder symfony w folderze symfony, który to znajduje się w folderze... tak jest! symfony! no masakra. znajdą się też plusy - konsola, bundle (ale żyć bez tego też się da). no i to chyba tyle z mojej strony, mam nadzieję że ktoś mi powie "chłopie, głupi jesteś, pierdoły piszesz! musisz to zrobić tak i tak i całość jest logiczna" - byłoby pięknie, wręcz magicznie ZF2 nie znam -------------------- |
|
|
19.11.2012, 00:07:09
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 006 Pomógł: 111 Dołączył: 23.07.2010 Skąd: Kraków Ostrzeżenie: (0%) |
Ja napiszę swój wywód.
ZF2 nie znam, tylko kilka info na blogach i przeglądnięcie pierwszego projekt-tutoriala. Ale w ZF1 trochę pisałem. Teraz zacząłem czytać i uczyć się SF2 (nigdy nie miałem styczności z SF1). Moje podsumowanie SF2: + konsola - potężne i wygodne narzędzie + wbudowane biblioteki + wbudowany debuger + pliki konfiguracyjne +/- bundle - to przecież coś a'la moduły (mogę się mylić) - wiele rzeczy dzieje się magicznie-automatycznie, czasem wydaje mi się, że tworząc coś i popełniająć błąd będę musiał zrobic projekt od początku - trzeba wybrać, czy stosujemy pliki konfiguracyjne jako yaml, php, xml czy inne (nie wiem, czy da się łączyć) - nie wiem jak obsługiwać formularze (jeszcze) ZF1: + praktycznie wszystko muszę zrobić sam, przez co mam pełną kontrolę + prosta struktura i wiem gdzie co jest (albo szybko to znajdę) - męczące dekorowanie formularzy (ale w ZF2 to podobno co innego) - wiele rzeczy trzeba znać, bo IDE nie podpowiadają - brakuje wypasionej konsoli A ZF2 znajmę się w chwili wolnego czasu Ten post edytował IceManSpy 19.11.2012, 00:11:50 -------------------- |
|
|
19.11.2012, 01:35:43
Post
#4
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
@r4xz: sam przez długi czas korzystałem z kohany w gałęziach 2 i 3... W porównaniu do sf2 to taki daleki, ubogi krewny. Kohana to po prostu nieco inna liga. Jest fajna do czegoś mniejszego, ale trzeba się w niej naprawdę napisać by osiągnąć coś co sf2 w większości przypadków ma z automatu lub w dostępnych łatwo bundlach. Modułów konkretnych tak naprawdę mało w Kohanie i upierdliwe są zmiany nawet w obrębie głównej gałęzi. Pisząc coś podstawowego dla 3.x nie masz za nic pewności, że w 3.(x+1) to jeszcze będzie działać, a by było weselej to żadna dokumentacja nie wspomina, by coś miało być za ileś tam wersji usunięte, albo choćby deprecated. Zrobisz upgrade na produkcji i po krótkim czasie się dowiadujesz, że coś leży :/
Konwencje są jak najbardziej, ale jest przyjmowane, iż zaczyna się ona od nazwy bundla. Wystarczy trochę poprogramować w tym i wiele rzeczy staje się proste. Dorzucić composera, testy jednostkowe, funkcjonalne i w zasadzie o testowaniu jako takim aplikacji można zapomnieć. Coś się rypnie to testy z reguły dość szybko wykryją problem i wskażą gdzie. Kohana też ma swoje upierdliwości wynikające z choćby hierarchiczności. Tak naprawdę by coś znaleźć muszę wiedzieć w jakim coś jest module. Hierarchiczność bowiem sprawia, że elementy wzajemnie się nakładają i uzupełniają przez co trudno nieraz znaleźć właściwą lokację. Szukając określonej funkcji muszę więc krok po kroku eliminować możliwe lokacje jej występowania. W symfony2 mamy nieco pościej: apps, gdzie w zasadzie nic nie powinno być poza główną konfiguracją, vendor gdzie są biblioteki/bundle obce i src - nasz kod. A jak nasz kod, to zbundlowany i tym samym namespace'y ładnie wskazują co gdzie. Co do nadmiaru USE to nie uważam tego za jakąś niewygodę. I tak musimy jakoś wskazać z czego dany kod ma korzystać. Normalne IDE i nie ma problemu - naprawdę. Gdyby w Kohanie nie upychano się w 1, góra 2 poziomach dziedziczenia, to też byś się nie połapał w niej. -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
19.11.2012, 04:19:05
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 333 Pomógł: 137 Dołączył: 25.03.2008 Skąd: jesteś?? Ostrzeżenie: (0%) |
@IceManSpy mam phpdesignera i wręcz genialnie podpowiada składnię, bez tego bym chyba poległ. ;-)
Jeśli chodzi o sam temat to przez jakiś rok może trochę więcej walczyłem z zend 1, wyszła 2'ka popatrzyłem i tak trochę zniesmaczony bo kod który mamy na start jest nie dość że większy niż w jedynce to jeszcze strasznie "dziwnie" wygląda jak dla mnie i przeniosłem się na SF2 (nie widziałem 1 na oczy nigdy ) wszystko pięknie było do czasu baz danych jak kontrolery, podział na paczki, rutery itd. działa super i jest bardzo prostu to jakoś podejście do sql'a mi się nie spodobało. Więc co począć walczę znów z zf2 i próbuję się przyzwyczaj. Nie jestem jakiś guru od fw, ale jak miał bym wybierać teraz to próbował bym sił z zf2. -------------------- Mój blog - o wszystkim i niczym ale zazwyczaj związane z informatyką! ;-)
Githube Usługi spawalnicze i monterskie | Park linowy Lublin i Okunince |
|
|
21.11.2012, 22:33:56
Post
#6
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 1 Dołączył: 12.12.2010 Ostrzeżenie: (0%) |
BIORĘ SF2.
Kojarzy ktoś jak się przełaczyć na wersję produkcyjną: bo wersja dev http://sf2.basso/app_dev.php/ śmiga mi dobrze, ale za hu hu nie mogę odpalić http://sf2.slawek/app.php , bo non stop:
Ten post edytował basso 21.11.2012, 22:34:25 |
|
|
21.11.2012, 22:35:15
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) |
Usuń folder app/cache i app/logs
spróbuj po tym uruchomić. |
|
|
21.11.2012, 23:39:28
Post
#8
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 13 Dołączył: 8.09.2012 Ostrzeżenie: (0%) |
|
|
|
22.11.2012, 07:42:23
Post
#9
|
|
Grupa: Zarejestrowani Postów: 395 Pomógł: 80 Dołączył: 24.08.2009 Ostrzeżenie: (0%) |
Gdy pierwszy raz zainstalowałem symfony 2.0 (standard edition) i chciałem przejść w środowisko deweloperskie to okazywało się że dostawałem 404, jako że raczkowałem w tym frameworku myślałem że to moja wina. Winę ponosi jednak samo symfony które nie posiada domyślnej domyślnej reguły dla urla "/", url ten jest zdefiniowany tylko dla środowska deweloperskiego, proszę sprawdzić app/config/routing_dev.yml.
Dlatego należy dodać własną regułkę dla pliku app/config/routing.yml która będzie powiązana z urlem "/", często nazywana jest ona jako: homepage. W symfony 2.1 też nic się nie zmieniło w tej kwestii. -------------------- |
|
|
22.11.2012, 08:20:15
Post
#10
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 4 Dołączył: 14.05.2010 Ostrzeżenie: (0%) |
Możesz wpisać w konsoli:
Jeśli na liście nie ma adresu przypisanego do "/" to wiadomo skąd błąd. Tak jak pisał toffiak - standardowo nie ma routingu dla strony głównej. -------------------- Accesto.pl
|
|
|
22.11.2012, 13:56:14
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) |
no nie ma, bo jest zrobione demo: /demo/hello/{name}
|
|
|
26.11.2012, 12:59:14
Post
#12
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 1 Dołączył: 12.12.2010 Ostrzeżenie: (0%) |
Witam,
ZROBIŁEM TESTY SF2 VS ZF2 Testy oprarte o 1mln rerkodów w bazie. Podsumowanie: Symfony 2 + lepsza organizacja plików + bundle (ala moduły tylko coś lepszego) + fajny generator, i miła bezproblemowa zamiana automatu, PRZEJRZYŚCIE i mało kodu. + szybciej się pracuje przy budowie , automat formularz, automat , baza, automat validacja js + info/logi + app_dev.php + bardzo szybko działa gdy ma obrobić ogromną liczbę danych (np obróbka 7 tyś rekordów zaciagnietych z bazy) czas => 2,7s , ZF2 =>6s + przejrzysty routing !! + twing albo php + fajne narzędzia dev - wolniejszy od ZF2 co najmnije 2,5x jeśli operujemy małymi danymi. Znaczy jeśli obrabiamy małe dane. W stylu zaciąganiem max 500 elementów z bazy i i obróbka ich. Próba 1mln rekordów => order by desc limit 500 rekordów i wyświetlenie: ZF2 => 2,6s SF2 => 4,8s Natomiast to samo z wyświetleniem 7 tyś rekordów: ZF2 => 6s SF2 => 2.7 Więc Symfonia 2 jeśli zaciągamy małą liczbę danych do przetworzenia to przegrywa z ZF2 sporo. Na zwykłych stronach jest to : 200ms vs 800ms . Natomiast jeśli trzeba zaciągać jakieś duże dane i je obrobić to na prawdę śmiga jak odrzutowiec w porównaniu do ZENDA. Zend Framework2 + szybkość działania przy przetworzeniu małych danych => a takie będę przetwarzał 09:25:40 + w miarę przejrzyste formularze Minusy: - masakra kod, dużo i nie przejrzysty - straszny routing - brak generatora hmm to w sumie + i - - trzeba się opisać jak .... żeby coś mieć Robiłem jeszcze inne testy, zaciąganie i wyświetlanie... obróbka przy użyciu kilku foreach itd... Podsumowanie: Jeśli tworzymy stronę internetową z zarządzaniem (CMS), CRM, bądź wewnętrzne systemy ERP przeszukujące miliony rekordów w bazie nie posiadające skomplikowanych mechanizmów przetwarzających te dane, na poziomie PHP to ZF2 jest czymś co będzie dużo szybsze. (2-3 x szybciej). Natomiast jeśli chcemy przetwarzać ogromną liczbę danych bądź wyświetlać ogromną liczbę danych to Symfonia 2 jest w tym przypadku o niebo szybsza. Widzę to w WEB SERVICE. Kwestie bezpieczeństwa nie sprawdzałem, gdyż walidatory w SF2 z dokumentacji nie działają=> nie tylko ja o tym tutaj piszę. Co ja wybieram? Mi zależy na szybkości działania, nie koniecznie na szybkości zbudowania serwisu. Ja wybieram ZF2 bo czasy na poziomie 100-200ms z listowaniem do 1tyś elementów bez cache to dla mnie coś świetnego. Chodź nigdy 1 tyś nigdzie nie wyswietlałęm, szczególnie paginacja po 20 -100 elementów max. Więc można by to jeszcze bardziej przyśpieszyć używając php 5.4 + cache + APC. Ten post edytował basso 26.11.2012, 13:01:45 |
|
|
26.11.2012, 13:16:50
Post
#13
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) |
Napisz coś więcej o środowisku, na którym to testowałeś...
|
|
|
26.11.2012, 13:48:47
Post
#14
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 1 Dołączył: 12.12.2010 Ostrzeżenie: (0%) |
Tutaj testy wydajnościowe ZF2 chodzi o requesty , nie zaciekawie to wygląda
http://www.enrise.com/2012/02/zend-framework-2-performance/ A moje mini testy odpalałem przy: PHP 5.3.12 I3-2120 (2x 3.3 GHz), 4GB RAM 1TB 7200/s mysql nie pamiętam wersji Chyba muszę też ApacheBench puścić na Sf2 wtedy porównam z tym co kolega wyżej potestował, bo tutaj może być ciekawie:) Ten post edytował basso 26.11.2012, 13:50:10 |
|
|
26.11.2012, 14:06:50
Post
#15
|
|
Grupa: Zarejestrowani Postów: 395 Pomógł: 80 Dołączył: 24.08.2009 Ostrzeżenie: (0%) |
Czyżby kolega basso testował ORM ZF2 vs Doctrine 2 ?
-------------------- |
|
|
26.11.2012, 14:19:42
Post
#16
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) |
Jaki system operacyjny ?
|
|
|
26.11.2012, 14:28:35
Post
#17
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 1 Dołączył: 12.12.2010 Ostrzeżenie: (0%) |
Ta tutorialowa klasa Zend jako use Zend\Db\TableGateway\TableGateway vs SF Doctrine 2
Windows XP SP3. |
|
|
26.11.2012, 14:40:55
Post
#18
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 4 Dołączył: 14.05.2010 Ostrzeżenie: (0%) |
Testy ZF2 kontra SF2 niestety niespecjalnie nadają się do akceptacji.
Zerknij sobie na pierwszy i drugi test (500 i 7k rekordów). Moim zdaniem wynik dla SF2 masz błędny, bo wykonanie było szybsze dla 7k rekordów niż dla 500 rekordów. To ewidentny błąd i stawia znak zapytania nad całym testem. Dobry test powinien uwzględniać różne zapytania - podawać jakie zapytania generuje ORM, być może jest w nich błąd? Test powinien być wykonany wielokrotnie, a na końcu wyliczone dane takie jak średnia, wariancja, mediana. Jeśli to test samych ORM to przetestuj bez wyświetlania, bo narzut w systemie szablonów też coś wnosi. I ostatnia uwaga: Apache Benchmark średnio nadaj się do testów. Lepiej zrobić przypadek testowy w jMeter (kilka jednoczesnych połączeń, wykres CPU i RAM itp.) -------------------- Accesto.pl
|
|
|
26.11.2012, 14:48:20
Post
#19
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) |
Napisz coś więcej o przeprowadzonych testach, jakie operacje przeprowadzałeś na danych ? Jak wyglądało zapytanie ? Jak wyglądała sama zawartość bazy ?
|
|
|
26.11.2012, 22:38:21
Post
#20
|
|
Grupa: Zarejestrowani Postów: 435 Pomógł: 40 Dołączył: 16.02.2003 Skąd: Wrocław Ostrzeżenie: (0%) |
...i zrób testy Symfony2/ZF2 a nie Doctrine/ZF2ORM ;p
Taki mały hint: przy pobieraniu tylu rekordów nie stosuje się ORMa, jest to ekstremalnie niewydajne (w efekcie długie czasy i pożera baaardzo dużo pamięci). Wtedy lecisz jak najbardziej RAW - tzn możesz użyć Doctrine2, ale bez "hydracji" (hydrating) do obiektów, a zamiast tego do zwykłych arrayów. ORM jest dobry przy stosunkowo małej ilości obiektów zaciąganych na raz. -------------------- Linkedin | ...
|
|
|
Wersja Lo-Fi | Aktualny czas: 27.04.2024 - 16:16 |