peter13135
29.08.2012, 14:45:25
Witam jaśnie wielmożnych formumowiczów.
Mam do was pytanie, bo tak się zdarzyło, że od pewnego czasu piszę (jednocześnie ucząc się) symfony2. Moje pierwsze wrażenie, to "ależ to kobyła". Z moich obserwacji wynika, że używa się go głównie do dużych projektów, i to takich które są pisane pod jedną konkretnę stronę. Takie joomle czy wordpressy albo phpbb czy vBulletin nie są napisane w żadnym fw (jeśli się mylę, to poprawcie).
Kieruję do was pytanie: kiedy właściwie należy użyć framerowka, a kiedy nie? A może do tych mniejszych projektów należy użyć mniejszych fw ?
Jeśli dubluję temat, to najmnocniej przepraszam i proszę o linki
Crozin
29.08.2012, 14:58:24
Cytat
Moje pierwsze wrażenie, to "ależ to kobyła".
Na tle innych - niekoniecznie PHP-owych - frameworków Symfony wcale jakiś strasznie kobylasty nie jest.
Cytat
Takie joomle czy wordpressy albo phpbb czy vBulletin nie są napisane w żadnym fw (jeśli się mylę, to poprawcie).
Większość z nich powstała jeszcze przed "erą frameworków PHP". Ale z tego co kojarzę phpBB4 ma działać w oparciu właśnie o Symfony2.
Cytat
Kieruję do was pytanie: kiedy właściwie należy użyć framerowka, a kiedy nie?
Jeżeli narzędzie (tutaj: framework) w ogóle nadaje się oraz pomoże w szybszym/łatwiejszym/lepszym/tańszym wykonaniu docelowego zadania to powinno się z niego korzystać.
Cytat
A może do tych mniejszych projektów należy użyć mniejszych fw ?
Nie, nie należy. W czym przeszkadza użycie "dużego" (bardzo dziwna klasyfikacja swoją drogą) frameworka przy małym projekcie?
Szymciosek
29.08.2012, 14:59:34
Też się uczę właśnie Symfony2 i w sumie mogę przyłączyć się do pytania i od siebie coś dodać:
Z tego co mi wiadomo, to nie jest powiedziane, że Symfony2 - Duży FW, nadaje się tylko do dużych projektów, lecz również ma zastosowanie w mniejszych projektach/stronach, np niech sobie będzie strona, która zawiera w sobie 4 podstrony (Home, Gallery, AboutUs, Contact) i myślę, że śmiało może być ona napisana w Symfony2, oczywiście nie będziemy pod nią tworzyć 10 kontrolerów, 100 widoków, wielkiej bazy danych itd, ale nawet jeśli wykorzystujemy jeden kontroler, 4 widoki, 1 base view, a do tego dodatkowo pomocne widoki, które np pokazują nam duże zdjęcie w galerii to i tak Symfony2 się do tego nada.
skowron-line
29.08.2012, 15:08:57
Nie ma podziału na duży i mały FW.
Do każdego projektu nadaje się FW nie ważne czy to jest Kohana czy Zend czy Symfony2, wszystko zależy od umiejętności programisty. Zend jest zbiorem wielu klas więc każdą z nich wykorzystać osobno w innym FW.
To że ktoś mówi że Symfony2 nie nadaje sie do małych projektów, a Kohana nie nadaje sie do dużych jest głupcem, bo w większości przypadków ta osoba nie potrafi podać jednego sensownego powodu dla którego dany FW nie sprawdzi się przy określonej aplikacji.
Sumując. FW zawsze i w każdej aplikacji.
Szymciosek
29.08.2012, 15:14:35
Znajomy mi napisał, że mały projekt zadziała z dużym FW, ale jest wtedy ładowane mnóstwo niepotrzebnych danych, uruchamia się wtedy cały fw...
"To tak jakbyś uruchomił kombajn do skoszenia trawnika"
Co o tym możecie powiedzieć ?
Crozin
29.08.2012, 15:18:29
@Szymciosek: Przede wszystkim co z tego, że wiele niepotrzebnych rzeczy może się uruchomić?
Przy małym projekcie w większości przypadków nawet nie warto będzie bawić się w konfigurację FW celem ich wyłączenia.
skowron-line
29.08.2012, 15:18:57
Cytat(Szymciosek @ 29.08.2012, 14:14:35 )

Znajomy mi napisał, że mały projekt zadziała z dużym FW, ale jest wtedy ładowane mnóstwo niepotrzebnych danych, uruchamia się wtedy cały fw...
"To tak jakbyś uruchomił kombajn do skoszenia trawnika"
Co o tym możecie powiedzieć ?
Ważne jest aby wybrać narzędzie które najlepiej będzie pasowało do danego zadania.
Szymciosek
29.08.2012, 15:23:59
Cytat(Crozin @ 29.08.2012, 16:18:29 )

@Szymciosek: Przede wszystkim co z tego, że wiele niepotrzebnych rzeczy może się uruchomić?
Przy małym projekcie w większości przypadków nawet nie warto będzie bawić się w konfigurację FW celem ich wyłączenia.
Konsultując się dalej ze znajomym, twierdzi że niepotrzebnie jest obciążany serwer niepotrzebną ilością danych.
Cytat(skowron-line @ 29.08.2012, 16:18:57 )

Ważne jest aby wybrać narzędzie które najlepiej będzie pasowało do danego zadania.
Czyli wg Ciebie jest warto bawić się w wyłączenie np Doctrine, jeśli z niego nie korzystam ? Za to Crozin zaś twierdzi, że nie warto się bawić w to przy małym projekcie.
peter13135
29.08.2012, 15:33:59
jak sobie do symfony2 dodałem pare bundli to wyszło mi, że cały folder ma ponad 100mb. Wrzucanie tego na ftp mi się niezbyt podoba :/
Crozin
29.08.2012, 15:53:47
Cytat
Konsultując się dalej ze znajomym, twierdzi że niepotrzebnie jest obciążany serwer niepotrzebną ilością danych.
Oczywiście, że każda dodatkowa, zbędna operacja to jakieś tam zwiększenie obciążenia serwera, ale:
1. Przy małych projektach to dodatkowe obciążanie jest nieodczuwalne. Co za różnica czy strona wygeneruje się w 0.018 czy 0.02 sekundy? Co za różnica czy jakieś dodatkowe śmieci się tam robią, skoro serwer jest jeszcze wstanie obsłużyć 2, 5 czy 25 razy większy ruch w "komfortowym" czasie?
2. Jak zaczynają pojawiać się problemy z wydajnością to wprowadza się jakieś podstawowe poprawki optymalizacyjne - wyłącza co niepotrzebne, zwiększa się ilość rzeczy lądujących w różnego rodzaju cache (przetworzone dane biznesowe, akceleratory PHP, reverse-cache itp.). Jeżeli nadal istnieją problemy z wydajnością przenosi się na mocniejszą maszynę - bo jest to zazwyczaj śmiesznie tanie rozwiązanie. Dopiero ostatnim krokiem jest babranie się z dziesiątkami drobnych optymalizacji.
3. Jeżeli ideologicznie przeszkadza Ci wykonywanie przez serwer zbędnych operacji zapomnij w ogóle o PHP. Język sam w sobie jest powolny, a i środowisko w jakim pracuje (żądanie -> władowanie wszystkiego -> wykonanie kodu -> odpowiedź -> zakończenie procesu) nie sprzyja optymalnemu kodowi.
Oczywiście, jeżeli jakaś tam optymalizacja jest łatwa do wdrożenia, np. wyłączenie całego Doctrine'a w Symfony2 to usunięcie dwóch linijek z AppKernel.php/autoloader.php, to powinno się to zrobić już na etapie tworzenia projektu.
Cytat
jak sobie do symfony2 dodałem pare bundli to wyszło mi, że cały folder ma ponad 100mb. Wrzucanie tego na ftp mi się niezbyt podoba :/
Zacznijmy od tego, że na serwer nie wrzuca się całych repozytoriów GIT-a, bo to one tyle zajmują. Zresztą kod bibliotek (3rd-party-code) możesz pobrać sobie już na serwerze, po co wrzucać to przez FTP.
Szymciosek
29.08.2012, 16:15:15
Cytat(peter13135 @ 29.08.2012, 16:33:59 )

jak sobie do symfony2 dodałem pare bundli to wyszło mi, że cały folder ma ponad 100mb. Wrzucanie tego na ftp mi się niezbyt podoba :/
Parę bundle za pomocą git i
Kod
php bin/vendors --install
to wiedz, że foldery git będą zajmowały właśnie tak dużo ze względu na to, że zawierają kompletną historię każdego pakietu...
Możesz to łatwo usunąć za pomocą komendy:
Kod
find vendor -name .git -type d -exec rm -fr {} \:
irmidjusz
29.08.2012, 22:27:50
Jeśli chodzi o Joomle, to została napisana w swoim własnym frameworku (który nawet nie jest wydzielony od właściwego CMSa). Takie specyficzne rozwiązanie, ale pod Joomle wszystko się pisze zgodnie z konwencją tego frameworka.
usb2.0
30.08.2012, 13:31:02
kiedy używać?
kiedy tylko można:P
wg. świetny framework, ogromne comunity, całą masa bundli gotowych, nie trzeba pisać czegoś po raz n-ty
wrzucanie na ftp to najciekawszych zajęc nie należy ale podobnie jest w przypadku innych fw.
Ja polecam!
Spawnm
30.08.2012, 13:48:12
W przypadku innych fw to wgrywasz ~300KB, dodajesz w configu dane bazy i możesz już tworzyć

Oczywiście inne, mniejsze fw nie dadzą ci w standardzie generatora kodów kreskowych itd. Ale jak często robiąc stronę firmy, prywatnej osoby czy jakiś cms lub crm a nawet gierkę musisz generować takie cuda? Większość aplikacji to crudy + modele przetwarzające jakieś dane, a w tego typu aplikacjach każdy fw jest ok jeśli pisze ci się w nim szybko i wygodnie. Większy fw warto wybrać jeśli wiemy że to co piszemy będzie rozwijane przez kolejne x lat i wszystko może się tam pojawić. Ale nawet w takim wypadku zawsze można wtedy dograć odpowiednią bibliotekę której akurat fw nam nie dostarczył.
usb2.0
30.08.2012, 14:34:43
niestety jako fanboy symfony mam inne zdanie : D
Szymciosek
30.08.2012, 20:08:02
Podziel się
marcio
30.08.2012, 23:44:04
Jak juz ktos wspomnial nikt na serwer nie wrzuca caelgo projektu symfony2 raz z bundlami i assets.
Wgrywamy tylko nasza aplikacje a reszte bundli instalujemy przez vendors.
Ja aktualnie jestem na praktykach jako mlodszy programista PHP pisze w SYmfony2 i musze powiedziec ze moze sie nadawac do wszystkiego czemu nie

Jego opanowanie zajmuje jakis miesiac przynajmniej dla mnie, jest masa plikow/katalogow.
Jest do poznania Doctrine(bo propel jest jakis glupawy),twig i kilka innych.
Ja polecam choc malo znam to mnie sie podoba
Szymciosek
31.08.2012, 14:04:26
Cytat(marcio @ 31.08.2012, 00:44:04 )

Jak juz ktos wspomnial nikt na serwer nie wrzuca caelgo projektu symfony2 raz z bundlami i assets.
Wgrywamy tylko nasza aplikacje a reszte bundli instalujemy przez vendors.
Aplikacje czyli co ? Jakie foldery/pliki ? Również zaczynam przygodę z Symfony2
Jeszcze mam takie pytanie dotyczące vendors, na pewnej stronie wyczytałem, że podczas ich aktualizacji do nowszej wersji możemy być zdziwieni, gdy projekt przestanie działać (to tyczy się composera). I tu pytanie, skąd mam wiedzieć co mogę/warto aktualizować, a co jest ryzykowne ?
marcio
31.08.2012, 20:25:52
Czytajac changelog bundli czy sa jakies wiekszy zmiany w API/konfiguracji/bazie
Dodajesz tylko twoje pliki do projektu bez zadnych bundli ktore sa ci potrzebne do dzialania aplikacji.
Czyli bez doctrine,twig-a itp..itd..
Potem ktos sciaga twoja aplikacji i za pomoca vendors instaluje wszystkie brakujace moduly ktore masz opisane w deps/deps.lock
Szymciosek
31.08.2012, 20:35:16
No tak, w przypadku aplikacji, które są dostępne dla innych to się zgodzę, że zbędne jest wrzucanie folderu vendors do całej paczki, ale gdy projekt ma być online (np strona internetowa), to wtedy powinny być wszystkie foldery, albo całe vendors umieszczone np w usr/share.
marcio
31.08.2012, 22:08:13
No tak ale to kazdy ma lokalnie zainstalowany serwer z projektem robi w nim zmiany i potem robi commit plikow z projektu bez zbednych bundli.
Przeciez mija sie z celem testowanie aplikacji online i wrzucanie plikow na ftp.
Korzystamy z git-a/svn-a
Szymciosek
31.08.2012, 22:22:51
Co masz na myśli o korzystaniu z git/svn ? Mogę tam trzymać swoje projekty, a raczej bundle (ewentualnie co jeszcze ?) i uruchamiać je na serwerze ?
Jeszcze pytanko, gdzie sprawdzić jaki doctrine jest najnowszy ? Na stronie doctrine widnieje 2.2.2 (
http://www.doctrine-project.org/blog/doctr...2-released.html ), a znowu gdzieś znalazłem 2.2.3 (
http://www.doctrine-project.org/projects/common.html ), ale to chyba raczej dotyczy common ? Czym to się różni ?
marcio
1.09.2012, 09:25:39
Co do doctrine to ci nie powiem.
Na git-a/svn-a wrzucasz tylko pliki z projektu a kazdy programista z osobna powinien miec lokalny serwer by moc testowac/debugowac kod lokalnie i gdy wszystko juz jest ok wrzucic kod do repozytorium zeby potem online na jakims serwerze byl dzialajacy kod.
Przynajmniej my tak robimy w zespole i uwazam to za dobra praktyke!
rzymek01
1.09.2012, 10:56:24
Osobiście nie widzę przeszkód jeśli chodzi o wrzucenie całego symfony do repo,
wystarczy sklonować repo, zmienić config i już wszystko działa
marcio
1.09.2012, 18:25:52
Cytat(rzymek01 @ 1.09.2012, 11:56:24 )

Osobiście nie widzę przeszkód jeśli chodzi o wrzucenie całego symfony do repo,
wystarczy sklonować repo, zmienić config i już wszystko działa

No tak przeszkod nie ma ale jak lubisz wrzucac 20mb-50mb to inna sprawa.
A czesto sa nowe wersje bundli wiec dobra praktyka wedlug mnie jest wrzucac tylko pliki naszego projektu.
Theqos
3.09.2012, 08:01:17
Btw jak komuś żal ładowania całego symfony to może pobawić się micro symfony
http://silex.sensiolabs.org/
rzymek01
3.09.2012, 17:12:34
Cytat(marcio @ 1.09.2012, 19:25:52 )

No tak przeszkod nie ma ale jak lubisz wrzucac 20mb-50mb to inna sprawa.
A czesto sa nowe wersje bundli wiec dobra praktyka wedlug mnie jest wrzucac tylko pliki naszego projektu.
jak jest nowa wersja, to do repo przecież nie idzie wszystko, tylko zmiany, tak samo tylko zmiany są pobierane,
a wrzucenie 50 MiB, zależy od prędkości łącza
usb2.0
5.09.2012, 14:16:51
hmm a z innej beczki co by nie spamować,
możecie polecić darmowy (chwilowo niestety:/) hosting pod Symfony2?
t.j. z php 5.3.2
Cytat
Z tego co mi wiadomo, to nie jest powiedziane, że Symfony2 - Duży FW, nadaje się tylko do dużych projektów, lecz również ma zastosowanie w mniejszych projektach/stronach, np niech sobie będzie strona, która zawiera w sobie 4 podstrony (Home, Gallery, AboutUs, Contact) i myślę, że śmiało może być ona napisana w Symfony2, oczywiście nie będziemy pod nią tworzyć 10 kontrolerów
To nie lepiej zainstalować CMS-a zamiast się męczyć z kobylastym frameworkiem, żeby dodać głupi kontroler do 4 podstron i 1 widok do galerii? Zwłaszcza, że ani to nie będzie szybsze od tego gotowego CMS-a ani tego szybciej nie wdrożysz?
irmidjusz
5.09.2012, 20:58:22
Dokładnie, często wszystko, co potrzeba, to gotowy CMS, na którym się najszybciej postawi stronkę
Na frameworku to się robi własny portal, gdy z jakiegoś powodu nie można wykorzystać gotowego CMSa, w którym wszystko co potrzeba jest już zrobione (bądź takiego nie ma)

Ale i tak jak się dobrze zna jak programować pod konkretnego CMSa, to często szybciej i łatwiej jest dorobić/przerobić w nim potrzebne ficzery.
peter13135
27.09.2012, 10:46:49
Odkopuję temat.
Wszelkie systemy for dyskusyjnych jakie znam nie są oparte o framework. Pewnie mają jakieś tam swoje wbudowane elementy frameworka jak klasa do obsługi bazy danych czy system szablonów.
Czy napisanie forum dyskusyjnego w symfony2 i wypuszczenie go jako darmowy skrypt dla wielu użytkowników internetu (tak jak wypuszczane jest choćby phpbb) ma sens ?
Bo mam pare wątpliwości
1. Symfony2 to jednak kobyła, użytkownik będzie musiał pare bitów więcej przesłać na serwer (nie wiem na ile to mocny argument)
2. Jeśli robię coś dla "miliona" użytkowników, to warto by było to dość szybkie/optymalne, czy symfony z racji na swoją wielkość nie przyczynia się do zamulania ? Choćby doctrine.
Tak jakoś korci mnie, żeby napisać takie forum, głównie dla własnego doświadczenia, ale jakby to jakoś ładnie mi wyszło i ktoś chciałby z tego korzystać to nie miałbym nic przeciwko. Czy to dobry pomysł ?
Wicio
27.09.2012, 12:15:20
O ile mi wiadomo to własnie phpBB4 jest tworzone przy użyciu Symfony2.
Crozin
27.09.2012, 13:21:57
Cytat
1. Symfony2 to jednak kobyła, użytkownik będzie musiał pare bitów więcej przesłać na serwer (nie wiem na ile to mocny argument)
Raczej słaby. Co za różnica czy wgrasz sobie archiwum (zip/tar/cokolwiek) które będzie ważyć 1 Mib czy 15 Mib?
Cytat
2. Jeśli robię coś dla "miliona" użytkowników, to warto by było to dość szybkie/optymalne, czy symfony z racji na swoją wielkość nie przyczynia się do zamulania ? Choćby doctrine.
Większość elementów Sf2 nie jest nawet uruchamiana w trakcie obsługi typowego żądania, a z Doctrine nikt nie każe Ci korzystać jeżeli uznasz, że jest ono wąskim gardłem.
rzymek01
27.09.2012, 16:25:15
zgoda z tym co napisał
Crozin,
może nie mam wielkiego doświadczenia z Symfony2, ale z tego co już zdążyłem się zorientować to na produkcji jest szybkie jak diabli

cache + akcelerator na serwerze typu apc też swoje robi
Szymciosek
27.09.2012, 16:27:52
Również zgadzam się z przedmówcami, nie ma z tym żadnego problemu, wszystko chodzi szybko, również jestem początkujący, może nie stworzyłem jeszcze wielkich aplikacji... ale na razie jest ok
rafio
27.09.2012, 16:49:41
Cytat(peter13135 @ 27.09.2012, 11:46:49 )

Wszelkie systemy for dyskusyjnych jakie znam nie są oparte o framework.
Te fora wywodzą się z czasów kiedy FW w PHP były novum. Jakie miałeś znane i popularne FW do PHP kiedy powstawało phpBB3, MyBB, SMF czy takie IPB 3?
Rozejżyj się dziś:
- phpBB4 ma być oparte na Sf 2
- MyBB 2 ma być oparte na Yii 2
- FluxBB ma byś oparty na Laravelu
- xenForo jest oparte na ZF
Rozmiar uploadu jest problemem kiedy trzeba stracić cały dzień na wysłanie forum na server, albo kiedy trzeba ładować pliki po kilka razy bo np. update położył forum.
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.