¿Cuál es la diferencia entre un sitio web desarrollado con PHP puro y con un marco PHP?

Al menos unos meses de su vida, si es probable que su proyecto tome meses.

Lo digo en serio: PHP puro está bien solo para emprendimientos o servicios muy pequeños que no están destinados a ser tocados durante mucho tiempo, en mi opinión.

Los marcos están diseñados para simplificar las molestias comunes de los idiomas en los que están escritos al tiempo que agregan funcionalidad adicional.

Recuerdo mi primera entrevista: me convirtió en el uso de Laravel, mientras que anteriormente había estado escribiendo todo mi código en PHP puro.

En resumen, me pidieron que explicara cómo sacaría a todos los usuarios de una base de datos. Comencé:

  • Inicie la conexión y guárdela en una variable;
  • Escribe una consulta SQL y guárdala en otra variable (si ya has escrito una antes, sabes lo complicado que es escribir incluso una simple declaración SQL en PHP);
  • Llame a una función para ejecutar la consulta en la conexión;

Si recuerdo correctamente, había un paso adicional que generalmente era necesario hacer y que aún recordaba con mayor precisión.

El reclutador, que también se convirtió en mi primer jefe después de eso, me dijo:
“Con lo que trabajamos, puede obtenerlos como $ users = Users :: all ();”

Me vendieron

Ahora, no todo son ventajas, por supuesto. Laravel, por ejemplo, maneja cosas como enrutamiento, plantillas HTML convenientes, conexiones de bases de datos fáciles, desinfección de entrada parcial, funciones de ayuda de cadena y muchos otros problemas comunes. Pero, a cambio, tiene estos inconvenientes (como es común con los marcos):

  • una curva de aprendizaje fácil pero existente; (el grado de dificultad puede ser más alto para las alternativas) – no vale la pena para proyectos muy cortos;
  • requisitos del servidor que su proveedor / servidor puede no cumplir: muchos proveedores en realidad no ejecutan la versión mínima requerida de PHP y configurar cosas sin acceso SSH puede ser problemático;
  • y agrega volumen a un proyecto que podría ser muy pequeño. Estamos hablando de al menos unas pocas decenas / cientos de archivos para lo más simple que podrías intentar hacer. Está diseñado (como muchos otros) para requerir una configuración mínima, pero aún requiere un poco de trabajo extra de su parte para que la pelota funcione.

En general, los sitios web desarrollados con marcos generalmente se escalan más fácilmente, son más fáciles de mantener y reclutan desarrolladores adicionales (a nadie le gusta aprender un marco PHP “personalizado” que fue creado para responder a los mismos problemas, pero que constituye un conocimiento no reutilizable para futuros trabajos y proyectos) y tienden a ejecutarse de manera más eficiente a menos que el PHP puro de la competencia esté escrito por alguien obsesionado con la optimización.

Asumo de la pregunta, que PHP puro se refiere a código estrictamente personalizado, aprovechando solo las funciones nativas de PHP y las bibliotecas comunes.

El código personalizado siempre tiene el potencial para el mejor rendimiento, ya que no incluye ningún código o funciones innecesarios, y todos los aspectos de la aplicación existen y se han desarrollado para requisitos estrictamente definidos. Una pequeña ventaja de seguridad que puede no ser propenso a agujeros de seguridad descubiertos con marcos particulares (esto probablemente se mitiga, ya que es posible que nunca descubra sus propios problemas de seguridad hasta que sea demasiado tarde)

Dependiendo de la complejidad, por supuesto, esto tiene el costo de:

  • Miles de horas reinventando la rueda
  • La falta de un equipo de desarrolladores que mantengan un marco
  • La falta de flexibilidad debería cambiar drásticamente los requisitos (esto nunca sucede)
  • Los desarrolladores de framework son probablemente mejores programadores que tú
  • Mejoras y características de la comunidad.
  • Soporte y arquitectura para varias plataformas y rutas de actualización.

Por supuesto, para repetir, todo depende de la complejidad de lo que está creando; sin embargo, a menos que sea un programador muy inteligente, es difícil imaginar muchos casos en los que no aprovecharía un marco. Al igual que las distribuciones de Linux, hay marcos que son muy ligeros en recursos como una línea de base y marcos más pesados ​​que pueden soportar proyectos muy complejos.

Mientras escribo esto, miro su pregunta inicial y me pregunto si me he alejado demasiado. Volviendo a eso, concluiré diciendo que la diferencia (suponiendo que las mejores prácticas y un desarrollador fuerte estén involucrados), es que el que comenzó con PHP puro es diferente a un marco, porque pasaron tiempo adicional escribiendo un nuevo marco de referencia. La justificación para el nuevo marco sería una decisión clave.

Simplemente, piense en ello desde una perspectiva diferente.

PHP PURO:
Imagínese, usted compra tela simple (sin estirar) en la tienda, luego vaya a medida, dé su medida y ordene su vestido. Puede tomarse unos días / semana. Depende de su disponibilidad.

Marco PHP:
Fuiste a cualquier tienda, compraste una camisa y seguramente inmediatamente puedes usarla.

Resumen: ahorre tiempo, dinero, energía y menos pánico.

El desarrollador no anticipó que el sitio necesitara mucha complejidad y, por lo tanto, no aprovechó un marco y toda la hinchazón asociada con los marcos típicos.

La desventaja es que ahora tiene alguna aplicación a medida que deberá ser convertida o mantenida por otro desarrollador (básicamente una reescritura) si se planean cambios sustanciales.

Dada mi primera declaración, suponiendo que no se anticipó una complejidad real en el momento de la compilación, el sitio puede ser un buen candidato para ser un sitio estático creado con Jekyll, lo que eliminaría toda la ejecución del lado del servidor en cada solicitud.

Los marcos proporcionan muchos beneficios, principalmente en torno a la idea de que ya se ha tomado una decisión y estandarizada para manejar cosas como enrutar solicitudes a los controladores correctos, cómo se manejan las respuestas y tal vez incluso más negocios como cosas como el manejo de formularios.

A medida que el sitio web evoluciona más complejo, los marcos brindan una estructura que facilita su comprensión y control.

En realidad, nadie necesita un marco para crear sitios web. Pero tener algunas reglas sobre dónde están los archivos y cómo se conectan las cosas hace que sea mucho más fácil de mantener y desarrollar. Frameworks también proporciona algunas bibliotecas estándar que facilitan la realización de funciones comunes como el inicio de sesión para que no necesite reinventar la rueda.

Sin marco, es posible que deba escribir una funcionalidad más básica y tener mucho cuidado de recordar después de un año dónde está todo y por qué.