2011-08-16 13 views
9

Mam zamiar rozpocząć nowy projekt i jestem zawieszony na jakim języku/strukturze użyć. Byłem profesjonalnym programistą PHP, ale nie było to w skali tego projektu. Grałem z RoR i byłem pod wrażeniem. Obecnie dwie wiodące kandydatury to RoR i Symfony2.Nowy projekt: Ruby on Rails lub Symfony2 (lub inny framework)

Moje główne rozłączenia z RoR: - nie wiem, ruby, lub prawie nie robię. Czytam to w porządku, ale utknąłem pisząc kod. - czytałem skargi na temat tego, że jest powolny, i wydaje się, że jest wolny w interfejsie CLI.

Moje główne rozłączenia z Symfony2: - praktycznie nie ma dla niego dokumentacji. Symfony1.x? pewnie ... ale nie symfony2 - jest też mało wsparcia. BB na ich stronie jest podobny do 80% spamu. - po zainstalowaniu go w lokalnym środowisku deweloperów nie udało mi się nawet uruchomić tego uruchomienia (zobacz moje pierwsze zawieszenie)

ten projekt będzie dość złożony i wykroczy poza podstawowe operacje CRUD. nie jest pod super ścisłą linią czasową, ale jest jedna. ~ 3 miesiące za kamień milowy1, który jest w zasadzie kalendarzem, elementami finansowymi (nie transakcjami z instytucjami finansowymi, tylko rzeczami typu organizacji finansów osobistych) oraz menedżerem projektu/cms.

również jestem otwarty na używanie innych frameworków, ale symfony2 wydaje się teraz najlepszy. jeśli symfony2 miał wsparcie RoR/dokumentacji/tutoriale/etc byłoby to nie myślenia.

Jestem naprawdę zainteresowany usłyszeniem tego, co stackoverflowverse ma do powiedzenia w tej sprawie. im stale pod wrażeniem jakości odpowiedzi/odpowiedzi na tej stronie.

kilka innych pytań podrzędnych (które są teraz w mojej głowie): - jeśli polecisz inną platformę php, dlaczego? - jakie masz największe zastrzeżenia do którejkolwiek z wymienionych opcji?

Wiem, że CakePHP jest najbliżej RoR, ale czytałem, że modele są trochę nieporęczne (wiele do wielu relacji i takie).

teraz, pochylam się w kierunku RoR. Mówiąc najprościej, naprawdę chcę się tego nauczyć i może to zrobić. Po prostu nie znam ruby ​​i przygotowałem dużo dobrego o symfony2.

Każda rada, jaką możesz zaoferować, zostanie bardzo doceniona. dzięki!

+0

Jeśli chcesz nauczyć się nowego języka podczas pracy nad tym projektem, poleciłbym Python i Django ponad Ruby i RoR. – solarc

Odpowiedz

9

Dla mnie Symfony2 jest świetny do tej pory. Dokumentacja jest rzadkością w porównaniu do Symfony1.x, ale rozpoczęcie pracy w Sf2 jest o wiele łatwiejsze, a przy oczywistych rzeczach wymaga mniejszej wiedzy o tym, jak system działa wewnętrznie.

Istnieje skrypt app/check.php, który wyświetli ostrzeżenie o zależności wymaganej do jego uruchomienia, a wsparcie najczęściej występuje w ich mailing list, która jest bardzo aktywna (nawet nie wiedział, że istnieje BB). Niektóre składniki, takie jak Twig, również mają własne listy.

+0

nawet nie wiedziałem, że mają listę mailingową ... zwykle nie mogę znieść tych, więc może poszperałem nad tym. dzięki ... sprawdź to. – afxjzs

+0

Chodzi o ** Gałązka **: p – Ouadie

22

Osobiście, polecam, że jeśli rozpoczynasz nowy projekt, który jest największym projektem, jaki kiedykolwiek musiałeś zrobić, powinieneś trzymać się tego, co wiesz najlepiej. Tak się składa, że ​​jest to PHP.

Użyłem Ruby lub Rails. W rzeczywistości mamy kilka aplikacji produkcyjnych w naszej firmie, które korzystają z RoR. Najlepszym sposobem, w jaki nauczyłem się RoR, było pracować nad małymi projektami. Nigdy bym nie pomyślał o wyborze języka programowania, który nie jest mi znany, a następnie nauczyłem się nowej struktury, aby rozpocząć kodowanie dużego projektu.

Co do Symfony2, zaczęliśmy używać go kilka tygodni temu. Symfony2 to doskonała platforma i wygląda obiecująco. Jest czysty, ładnie rozłączony i szybki. Jednak natrafiliśmy na zbyt wiele błędów/bólów głowy/niespójności w Symfony2, aby móc nadal z niego korzystać. Zaczniemy nad nim pracować, gdy dojrzeje i dokumentacja będzie rosła (wiele dokumentów jest już nieaktualnych). Mam nadzieję, że wydadzą jakiś samouczek Jobeeta, ale dla Symfony2.

Przejście do CakePHP. Podstawa kodu CakePHPs jest stara. W rzeczywistości działa poprawnie w PHP 4.3.2. Nie wykorzystuje całej dobroci jaką oferuje PHP5 (klasy absract, interfejsy, prywatne & chronione właściwości, wyjątki, magiczne metody, adnotacje, przekazywanie obiektów przez odniesienie itp.) Warstwa abstrakcji bazy danych CakePHP, podczas gdy miała ulepszenia , nie jest niesamowicie wydajna, gdy struktury bazy danych stają się zbyt skomplikowane (na przykład wiele złączeń) bardzo się rozpada.

Przechodząc do Symfony 1.4, która Użyłem wielu dużych projektów

Lubię korzystających ponieważ:

  1. PHP5
  2. System Event
  3. Dependency Injection
  4. systemu buforowania
  5. Formularze (dobra integracja z Doctrine 2) W rzeczywistości jest to moja ulubiona funkcja.
  6. Wiele wtyczek (sfGuard do zarządzania użytkownikami, na przykład)
  7. Gałązka (ładny język szablonów)
  8. Wysoce konfigurowalny
  9. Scalable (choć nie tak szybko jak Symfony2)
  10. dużo dokumentacja (poradnik Jobeet jest świetny)

Jeśli PHP jest na razie twoją mocną stroną i musisz zacząć pracę nad dużym projektem, zacznij używać frameworka opartego na PHP, ponieważ znasz składnię języka i działa on najlepiej.

Przejdź do RoR, gdy masz mały projekt do zrobienia.

Tylko moje 2 centy.

Powodzenia.

+0

dziękuję za odpowiedź. Jednak do tej pory aplikacja/check.php przeszła pomyślnie, a sprawdzenie w config.php przeszło pomyślnie ... a następnie nie działało (zobacz: http://stackoverflow.com/questions/7072552/symfony2-trips -right-out-the-gate) więc tak ... nie pod wrażeniem do tej pory. Chcę rozpocząć ten projekt teraz, a nie na starej/przestarzałej technice (symfony1.x), gdy jest już symfony2 ... to naprawdę nie ma sensu ... chyba że coś mi brakuje. – afxjzs

+2

Symfony 1.4 nie jest nieaktualne. Symfony 2 po prostu korzysta z nowych funkcji w PHP 5.3, a mianowicie przestrzeni nazw. Symfony 2, choć może zostać wydane w chwili obecnej, pozostaje poddane najprawdopodobniej różnym zmianom, dopóki nie stanie się dojrzałą platformą programistyczną. jeśli porównasz drzewo sf 1.x i spojrzysz na zmiany między 1.0 a 1.4, zastanów się, jak sf2 jest nadal dostępne tylko w wersji 2.0. struktury sieciowe to tylko sprytne sposoby analizowania i łączenia łańcuchów. przestarzałe technologie praktycznie nie mają zastosowania do frameworków internetowych, chyba że są naprawdę przestarzałe. sf2 nie robi niczego, do czego sf1 nie jest w ogóle zdolny. –

+0

System pakowania i nadpisywanie lokalnych części pakietów jest wielką atrakcją/zaletą, którą widziałem w s2 po latach pracy głównie z s1. Wciąż nie napisałem żadnych projektów w s2, z powodów, dla których @ alex.pilon daje – yitznewton

9

To jest stary temat, ale trochę się zmieniło i polecam Symfony2. Ich aktualna dokumentacja jest świetna (symfony.com) i znacznie łatwiejsza do nauczenia dla początkujących. Spróbowałem RoR, ale z symfony właśnie dostałem się do tego znacznie szybciej.

0

Będę echo komentarzy Solarc o Symfony 2. Użyłem go dla kilku małych projektów i zaczynam coś bardziej ambitnego w tym tygodniu. Chciałbym zobaczyć kompletny samouczek w stylu Jobeet, ale główna dokumentacja jest wystarczająco dobra, aby rozpocząć pracę z IMHO. Daję to dokładną lekturę i nauczyłem się kilku rzeczy, które pominąłem, używając dokumentacji jako prostego odniesienia.

Znalezienie pakietów było moją największą frustracją, ale dokumentacja wspomina o knpbundles.com i wydaje się być doskonałym zasobem.

2

Jestem zdumiony tym, że nikt nie wspomniał o super bogatej społeczności GEM dla Rubiego, a zatem dla Ruby on Rails, istnieje po prostu tak wiele funkcji tam, wiele osób pracuje nad wieloma projektami MIT/open source . Dla mnie społeczność jest tym, co napędza mnie do wyboru jednej struktury nad drugą. Ilość konfiguracji i różne silniki szablonów, jest tak dużo rubinu na szynach.

do kontroli wykresu porównanie to uwagę:

http://vschart.com/compare/doctrine-php/vs/ruby-on-rails

Na koniec dnia, to wszystko sprowadza się do tego, co wiesz, ale nie wychodzą Wspólnota i funkcjonalność, która została napisana dla już jesteś wolny ...

+0

Dlaczego nie preferować kompozytora nad Gemfile –

+0

Myślę, że ostatnie atrybuty w tym "wykresie" są o tym, z którymi te debaty porównawcze zwykle kończą się z :) –