2008-12-28 22 views
5

Dla tych z Was, którzy mieli możliwość pisania aplikacji internetowych w PHP, a następnie jako serwer aplikacji (np. Rozwiązania oparte na Pythonie, takie jak CherryPy czy Pylony), w jakim kontekście serwery aplikacji są lepszą alternatywą dla PHP?PHP vs. serwer aplikacji?

Mam tendencję do faworyzowania PHP po prostu dlatego, że jest dostępny na prawie każdym serwerze sieciowym (szczególnie hosta udostępnionego), ale szukam innych dobrych powodów do dokonania świadomego wyboru. Dziękuję Ci.

Odpowiedz

1

Istnieje kilka produktów w PHP, które wypełniają tę samą przestrzeń, co CherryPy lub Pylons.

(z wyjątkiem, oczywiście, że nie uruchomić Pythona;)

Zapraszamy do obejrzenia -

Osobiście wolę Drupala, który działa jako świetny framework i jest wyposażony w wiele funkcji CMS i witryn społecznościowych po wyjęciu z pudełka. Te powyżej różnią się pod wieloma względami, ale każdy z nich powinien oferować najlepsze z obu światów, jeśli chcesz mieć framework aplikacji/appserver działający na PHP.

Który jest właściwym wyborem jest w dużej mierze kwestia gustu, chociaż każdy ma swoje różne zalety i wady.

Jest ich o wiele więcej - są to tylko te, o których słyszałem od kolegów i współpracowników. To nie jest pełna lista.

4

Zaletą wdrożenia dla PHP jest ogromna. Będziesz mieć również dużą bazę programistów i brzmisz, jakbyś już miał spore doświadczenie. Ogólnie rzecz biorąc, jeśli umiesz dobrze posługiwać się językiem programowania, bezpieczniej jest go trzymać.

Zaletą korzystania z frameworka sieci Python, takiego jak Pylony, jest to, że kod będzie bardziej uporządkowany i łatwiejszy w utrzymaniu. Oczywiście jest to możliwe w PHP, ale wydaje się trudniejsze do osiągnięcia. Python jest po prostu ładniejszym językiem niż PHP, co może wpłynąć na twoją decyzję.

Osobiście nie opisałbym ani Pylonów, ani CherryPy jako "serwera aplikacji", jeśli chcesz mieć serwer aplikacji Python, spróbuj Zope. (Oboje obsługują aplikacje WSGI, ale jest to temat na inne pytanie.) Wydaje się, że istnieje wiele równoważnych frameworków dla PHP i zostały one wymienione w innych odpowiedziach.

0

Używanie serwerów aplikacji, takich jak Pylony, Django itp., Wymaga znacznie więcej pracy, aby skonfigurować i wdrożyć aplikacje PHP, które są zazwyczaj obsługiwane od razu po wyjęciu z pudełka. Uruchomiłem kilka aplikacji Django i musiałem nauczyć się trochę konfigurować apache za pomocą mod_python, aby wszystko działało. Wysyłam wysiłek, ponieważ kodowanie w Pythonie jest dla mnie o wiele bardziej przyjemne niż PHP i po tym, jak otrzymasz konfigurację Apache, gdy już nigdy nie będziesz musiał się z tym bałaganić. Inna uwaga, jeśli zdecydujesz się na frameworka takiego jak Django, Rails, Pylons, ....mają tendencję do rozwiązywania wielu małych powtarzalnych zadań, które w przeciwnym razie robiłbyś sam. Ale ramy są ich własnym ogromnym tematem do dyskusji.

1

Aplikacje internetowe w języku Python wymagają raczej początkowej konfiguracji i rozwoju niż odpowiednik witryny PHP (w szczególności w przypadku małych witryn). W PHP są też bardziej przydatne do wielokrotnego użytku (np. Wordpress jako blog). Konfiguracja serwera do uruchamiania aplikacji internetowych Python może być trudnym procesem i nie zawsze dobrze udokumentowana. PHP wydaje się być bardzo łatwe do uruchomienia z Apache.

Ponadto, ponieważ PHP jest bardzo szeroko stosowane i jest intensywnie używane przez początkujących, istnieje na to bardzo dobra dokumentacja.

Jednak Python jest o wiele zabawniejszy i znacznie łatwiejszy w utrzymaniu. Jego skala jest bardzo dobra (w kategoriach złożoności rozwoju, a nie ruchu).

Osobiście chciałbym również powiedzieć, że używanie Pythona ma tendencję do szkolenia w zakresie rozwiązywania problemów w lepszy sposób. Jestem zdecydowanie lepszym programistą, jeśli nauczyłem się Pythonicznego sposobu robienia rzeczy.

4

Mam wrażenie, że niektóre z odpowiedzi nie dotyczyły bezpośrednio pierwszego pytania, więc zdecydowałem się opublikować własne. Rozumiem, że chodziło o różnicę między modelem wdrożenia mod_php a modelem wdrożenia serwera aplikacji.

W prostych słowach, PHP wykonuje dany skrypt na każde żądanie, a aplikacja nie ma wiedzy o tym, co działo się wcześniej (chyba że jest w jakiś sposób emulowana). Co więcej, nawet kod źródłowy jest analizowany na każde żądanie (chyba że używasz bufora kodu bajtowego, takiego jak APC). Ten proces może być powolny, szczególnie jeśli posiadasz framework ze złożoną inicjalizacją.

W przeciwieństwie do tego serwer aplikacji musi zostać uruchomiony tylko raz, a następnie czeka na przetworzenie żądania. Serwer aplikacji powinien czyścić zasoby po każdym żądaniu (przydzielona pamięć, otwarte deskryptory itp.), Może też łączyć pewne zasoby (takie jak połączenia z bazą danych), które mogą być ponownie wykorzystywane między żądaniami zwiększenia wydajności.

Ten późniejszy model (serwer aplikacji) jest w większości przypadków bardziej wydajny, ale z drugiej strony trudniejszy w konfiguracji i utrzymaniu. Jest to również bardziej wymagające, ponieważ musisz zwracać większą uwagę na zasoby, które wykorzystujesz, aby uniknąć wycieku zasobów.

+0

To jest doskonały opis. Proszę przegłosować. –