2008-12-28 18 views
5

Para aquellos de ustedes que tuvieron la oportunidad de escribir aplicaciones web en PHP y luego como servidor de aplicaciones (por ejemplo, soluciones basadas en Python como CherryPy o Pylons), ¿en qué contexto los servidores de aplicaciones son una mejor alternativa a PHP?PHP vs. servidor de aplicaciones?

Tiendo a favorecer PHP simplemente porque está disponible en casi cualquier servidor web (especialmente host compartido), pero estoy buscando otras buenas razones para tomar una decisión informada. Gracias.

Respuesta

1

Hay varios productos en PHP que ocupan el mismo espacio que CherryPy o Pilones.

(excepto, por supuesto, que no se ejecutan Python;)

Tenga una mirada en -

Personalmente, prefiero Drupal, que funciona como un gran marco y viene con muchas características de CMS y sitios de la comunidad listos para usar. Los anteriores son bastante diferentes en muchos aspectos, pero cualquiera de estos debería ofrecerle lo mejor de ambos mundos si desea un marco de aplicación/servidor de aplicaciones que se ejecute en PHP.

¿Cuál es la mejor elección es en gran medida una cuestión de gusto, aunque cada uno tiene sus ventajas y desventajas.

Hay muchos más, estos son solo los que he escuchado cosas buenas de colegas y colaboradores. No es una lista completa.

4

La ventaja de la implementación para PHP es enorme. También tendrá una gran base de desarrolladores, y parece que ya tiene una experiencia considerable. En general, si sabe cómo usar bien un lenguaje de programación, es más seguro quedarse con él.

Las ventajas de utilizar un framework web Python como Pylons son que su código será más ordenado y más fácil de mantener. Por supuesto, esto es posible con PHP, pero parece mucho más difícil de lograr. Python es simplemente un lenguaje más agradable que PHP, por lo que podría afectar su decisión.

Personalmente, no describiría ni Pylons ni CherryPy como un "servidor de aplicaciones", si quiere un servidor de aplicaciones Python, intente Zope. (Ambos sirven Aplicaciones WSGI, pero ese es un tema para otra pregunta.) Parece que hay muchos marcos equivalentes para PHP, y se han enumerado en otras respuestas.

0

El uso de servidores de aplicaciones como Pylons, Django, etc. requiere mucho más trabajo para configurar y desplegar las aplicaciones de PHP que generalmente se admiten de manera inmediata. Ejecuté algunas aplicaciones de Django y tuve que aprender a configurar Apache con mod_python para que todo funcione. Hice el esfuerzo porque codificar en python me resulta mucho más divertido que PHP y después de obtener la configuración de Apache correcta una vez, nunca más tendrás que volver a jugar con ella. En otra nota, si decides ir con un framework como Django, Rails, Pylons, ....tienden a resolver muchas pequeñas tareas repetitivas que de lo contrario harías por tu cuenta. Pero los marcos son su propio tema de discusión.

1

Las aplicaciones web de Python suelen requerir más configuración y desarrollo iniciales que el sitio PHP equivalente (especialmente para sitios pequeños). También tienden a haber más piezas reutilizables para PHP (es decir, Wordpress como blog). La configuración de un servidor para ejecutar las aplicaciones web de Python puede ser un proceso difícil y no siempre está bien documentado. PHP tiende a ser muy fácil de ejecutar con Apache.

Además, como PHP es muy utilizado y es muy utilizado por principiantes, tiende a haber una muy buena documentación para ello.

Sin embargo, Python es mucho más divertido y mucho más fácil de mantener. Se adapta bien (en términos de complejidad de desarrollo, en lugar de tráfico).

Personalmente, también diría que usar Python tiende a capacitarte para resolver problemas de una mejor manera. Definitivamente soy un mejor desarrollador por haber aprendido la manera Ptónica de hacer las cosas.

4

Tengo la sensación de que algunas de las respuestas no abordaron directamente la pregunta inicial, por lo que decidí publicar la mía. Entiendo que la pregunta era sobre la diferencia entre el modelo de implementación mod_php y el modelo de implementación del servidor de aplicaciones.

En palabras simples, PHP ejecuta un script dado en cada solicitud, y la aplicación no tiene conocimiento de lo que sucedió antes (a menos que se emule de alguna manera). Además, incluso el código fuente se analiza en cada solicitud (a menos que use un caché de bytecode como APC). Este proceso puede ser lento, especialmente si tiene un marco con inicialización compleja.

En contraste con esto, el servidor de aplicaciones debe iniciarse una vez y luego espera a que se procese una solicitud. El servidor de aplicaciones debe limpiar los recursos después de cada solicitud (memoria asignada, descriptores abiertos, etc.), también puede agrupar ciertos recursos (como conexiones de bases de datos) que se pueden reutilizar entre solicitudes de rendimiento adicional.

Este último modelo (servidor de aplicaciones) es más eficiente en la mayoría de los casos, pero por otro lado es más difícil de configurar y mantener. También es más exigente, ya que debe prestar más atención a los recursos que utiliza para evitar pérdidas de recursos.

+0

Esta es una excelente descripción. Por favor, voto favorable. –