En las redes sociales, a menudo los nuevos desarrolladores de PHP preguntan "¿Qué marco debo usar para mi proyecto" y generalmente las respuestas dadas son "Laravel" o "Symfony".
Si bien ambas son buenas opciones, la respuesta correcta a esta pregunta debería ser "¿Qué necesitas que haga el marco?"
El marco correcto debe ser uno que haga lo que usted necesita, sin un montón de características que nunca usará.
Si está creando un sitio web con una sola ruta, usar Laravel o Symfony sería una ingeniería excesiva del sitio, mientras que para un sitio complejo, Laravel o Symfony pueden ser la opción correcta.
Los micro frameworks son excelentes para crear sitios pequeños y medianos que no necesitan todas las características que proporciona un framework completo.
Si bien hay muchos, Slim y Flight PHP son excelentes ejemplos de micro frameworks.
Recientemente creé un pequeño sitio web que pide al usuario que resuelva 10 preguntas relacionadas con bases de datos. Tenía tres rutas y algunas consultas básicas para buscar las preguntas y comparar las respuestas.
Para un proyecto pequeño como este, un micro framework es una excelente opción. Construí el sitio en PHP Slim y Flight para compararlos.
Si no has usado un marco en particular antes, usar el proyecto esqueleto proporcionado es generalmente un excelente lugar para comenzar.
El proyecto esqueleto de Flight PHP es más o menos lo que esperaba, peso ligero, configuración MVC simple, fácil de entender la estructura de carpetas y saber dónde debe ir todo en el proyecto.
Para alguien nuevo en el marco, la curva de aprendizaje para comenzar a utilizarlo es mínima.
Luz en las bibliotecas de compositores, solo 5 en total (incluida la biblioteca principal), 4 utilizadas en producción.
El tamaño de producción del Skeleton fue de 1,6Mb.
El proyecto Slims Skeleton me sorprendió. La estructura del directorio era más compleja de lo que había previsto. Orientado más a una estructura que pueda usarse en un proyecto más grande que en un proyecto pequeño. Para un micro framework, esto no era lo esperado.
El esqueleto Slim era un poco más pesado que Flight PHP. 21 bibliotecas de compositores, 9 utilizadas en producción. El tamaño de producción del proyecto fue de 3,3Mb.
Ambos funcionaron desde el primer momento con una mínima configuración adicional necesaria.
En lugar de usar los esqueletos, decidí construir los sitios creando mi propia configuración. La ventaja de hacer esto es que pude adaptar los marcos a mis necesidades y ver cuán flexibles eran para diferentes estructuras.
Una de las grandes ventajas de usar micro frameworks es poder construirlos para hacer exactamente lo que necesita sin gastos innecesarios, agregando características y bibliotecas a medida que sean necesarias.
Mi configuración con Flight PHP no fue significativamente diferente del esqueleto. Si bien terminé con menos directorios y diferentes bibliotecas de compositores, estructuralmente era similar.
Con Slim, la estructura del proyecto terminó significativamente diferente del esqueleto.
Fue agradable que Slim fuera flexible y no hiciera suposiciones sobre la estructura y funcionara bien con una estructura completamente diferente al esqueleto.
Flight PHP también es flexible en este sentido, permitiendo estructuras más complejas si es necesario, y agregar nuevas bibliotecas al marco fue sencillo.
Enrutamiento
Desde el punto de vista del enrutamiento, fue agradable trabajar con ambos. Ambos fueron fáciles de configurar sin necesidad de leer mucha documentación.
Routes in Flight PHP era un poco más sencillo de configurar que Slim y usaba menos código para hacerlo, pero ninguno era difícil de configurar.
Los grupos de enrutamiento, las capacidades de expresiones regulares y las opciones de middleware hicieron que las rutas fueran flexibles y al mismo tiempo fácil de trabajar.
Conexiones de base de datos
Con Slim, la expectativa es que deberías usar un ORM como Eloquent o Doctrine para tus consultas de bases de datos, mientras que Flight PHP proporciona un contenedor simple para PDO que se puede usar si es necesario y, opcionalmente, se puede agregar Active Record al proyecto para crear consultas.
Para un proyecto pequeño como en el que estaba trabajando, usar un ORM parecía ser un poco más de lo necesario, así que terminé construyendo una pequeña clase contenedora PDO para Slim, similar a la que viene integrada en Flight PHP. .
Los ORM son excelentes, pero tener la flexibilidad incorporada para elegir cómo deseo codificar las consultas de la base de datos es una buena característica.
Codificación general
Tanto el framework PHP Slim como el Flight son buenos para permitirte escribir código a tu manera.
Algunos marcos tienden a obligarte a codificar de una manera específica y, en ocasiones, puedes sentir que estás luchando contra el marco.
Frameworks debería funcionar contigo, no en tu contra, y ambos sintieron que estaban trabajando conmigo.
Slim también proporciona una serie de complementos útiles que incluyen integración CSRF y almacenamiento en caché HTTP.
Flight PHP proporciona complementos adicionales que incluyen permisos y registro activo.
Todos estos complementos son adiciones útiles sin tener que usar soluciones de terceros o crear las tuyas propias.
Devolver JSON como respuesta es más limpio en Flight PHP que en Slim, Slim 3 tenía una respuesta withJson conveniente. Si bien Slim 4 se adhiere más a PSR-7, eso significa que para crear la respuesta JSON se requiere más código.
Si fuera a usar mucho las respuestas JSON, probablemente crearía un contenedor para hacerlo más conveniente y al mismo tiempo cumpliría con el estándar PSR-7.
Esta es una diferencia significativa entre los dos Frameworks, Slim siente que necesita adaptarse más creando clases para limpiar y simplificar el código base, mientras que Flight PHP ya lo ha hecho por usted.
Slim proporciona una serie de middleware auxiliar. El middleware es necesario para que algunas funciones funcionen.
Un ejemplo de esto es obtener datos de Javascript usando FETCH. Slim tiene un método getParsedBody para crear una matriz de datos a partir de la solicitud POST.
Sin embargo, para poder usarlo, es necesario agregar addBodyParsingMiddleware al contenedor.
Es una especie de trampa para los nuevos desarrolladores, pero también brinda acceso a funciones opcionales, que pueden reducir el espacio total del marco al habilitar solo las funciones que necesita.
Flight PHP logra esto a través de un archivo de configuración, algunas funciones se pueden activar y desactivar a través de la configuración en lugar de mediante la habilitación de middleware.
Pruebas de velocidad
Según los puntos de referencia, comparar los dos tiene resultados interesantes: Slim supera a Flight PHP en algunas áreas, mientras que Flight PHP supera a Slim en otras áreas.
Poner a prueba los dos marcos en mi propio código mostró que Flight PHP tenía tiempos de respuesta más rápidos y consistentes que Slim.
Interfaz
Solicitud GET que devuelve JSON
Solicitud POST que devuelve JSON
Lo que encontré notable fueron los picos atípicos al usar Slim.
La ejecución de estas pruebas varias veces produjo resultados similares cada vez a los que he mostrado arriba, con tiempos de respuesta generalmente buenos para ambos, pero con picos atípicos en Slim que no ocurrieron al probar Flight PHP, y Flight PHP en general tuvo mejores resultados. tiempos de respuesta.
Si no te has aventurado en los micro frameworks, pruébalos, hay algunos disponibles y puede ser una gran experiencia de aprendizaje probarlos y ver qué te gusta y qué no te gusta en cada uno. uno.
Tanto Slim como Flight PHP son excelentes micro frameworks.
Slim es un marco sólido con algunas características interesantes que funcionarán silenciosamente para usted.
Flight PHP es más liviano y su simplicidad hace que aprender el marco sea realmente fácil.
Los buenos tiempos de respuesta y el código más simplificado para lograr lo mismo lo convierten en una muy buena opción para usar en un micro framework.
Después de poner estos dos uno al lado del otro, prefiero Flight PHP a Slim, pero como con cualquier marco, pruébalo y ve si funciona para ti.
Después de todo, el marco correcto es aquel que hace lo que usted necesita que haga.
Vuelo PHP
Marco delgado
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3