Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [inny] [ZF2] vs [SF2], Który wybrać?
basso
post 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
Go to the top of the page
+Quote Post
r4xz
post 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 smile.gif
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 smile.gif

ZF2 nie znam


--------------------
Go to the top of the page
+Quote Post
IceManSpy
post 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 biggrin.gif (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 smile.gif

Ten post edytował IceManSpy 19.11.2012, 00:11:50


--------------------
Go to the top of the page
+Quote Post
thek
post 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
Go to the top of the page
+Quote Post
ShadowD
post 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 haha.gif) 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
Go to the top of the page
+Quote Post
basso
post 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:

  1. Oops! An Error Occurred
  2.  
  3. The server returned a "404 Not Found".
  4.  
  5. Something is broken. Please e-mail us at [email] and let us know what you were doing when this error occurred. We will fix it as soon as possible. Sorry for any inco


Ten post edytował basso 21.11.2012, 22:34:25
Go to the top of the page
+Quote Post
Szymciosek
post 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ć.
Go to the top of the page
+Quote Post
ixox
post 21.11.2012, 23:39:28
Post #8





Grupa: Zarejestrowani
Postów: 51
Pomógł: 13
Dołączył: 8.09.2012

Ostrzeżenie: (0%)
-----


  1. php app/console cache:clear --env=prod --no-debug
Go to the top of the page
+Quote Post
toffiak
post 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.


--------------------
Go to the top of the page
+Quote Post
misi3kk
post 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:

  1. php app/console router:debug --env=prod


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
Go to the top of the page
+Quote Post
Szymciosek
post 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}
Go to the top of the page
+Quote Post
basso
post 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 exclamation.gif!!
+ 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
Go to the top of the page
+Quote Post
Szymciosek
post 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ś...
Go to the top of the page
+Quote Post
basso
post 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 smile.gif 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
Go to the top of the page
+Quote Post
toffiak
post 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 ?


--------------------
Go to the top of the page
+Quote Post
Szymciosek
post 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 ?
Go to the top of the page
+Quote Post
basso
post 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.
Go to the top of the page
+Quote Post
misi3kk
post 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
Go to the top of the page
+Quote Post
Szymciosek
post 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 ?
Go to the top of the page
+Quote Post
ano
post 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 | ...
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 16:16