Symlex tiene como objetivo simplificar el desarrollo web ágil al proporcionar un sistema de trabajo que promueva las mejores prácticas con el ejemplo:
Desde su lanzamiento inicial en 2014, ha demostrado ser muy adecuado para construir rápidamente microservicios, CLI y aplicaciones de una sola página. Se completa con ejemplos de trabajo de pruebas a formularios y abstracción de la base de datos. Simplemente elimine lo que no necesita.
El núcleo es pequeño y solo crea un contenedor de servicio para arrancar su aplicación dentro de su contexto. El uso de un solo contenedor para la configuración y la inyección de dependencia reduce la complejidad y conduce a un rendimiento mejorado en comparación con otros marcos. También evita que los desarrolladores instalen sin pensar los paquetes sin entenderlos. El resultado es menos hinchazón y un código más simple, más mantenible y comprobable que es fundamental para el desarrollo ágil.
Las clases simples se utilizan siempre que sea posible para evitar el bloqueo del proveedor y habilitar la reutilización de código independiente de Framework. Ver compensaciones.
Puede combinar el backend basado en PHP con cualquier biblioteca JavaScript o cliente REST. El front-end Boilerplate está ahí para su conveniencia y lo coloca directamente en la pista para construir aplicaciones impresionantes de una sola página con Webpack y Vuetify, consulte Demo.Symlex.org. También se incluye un ejemplo de trabajo para aplicaciones de línea de comandos.
Nuestra documentación completa del marco se puede encontrar en docs.symlex.org. Tuzi Liu mantiene una traducción china para nosotros.
Nota: https://github.com/symlex/symlex-core contiene el núcleo y los enrutadores como componentes reutilizables.
Antes de comenzar, asegúrese de tener PHP 7.3+, Composer y Docker instalados en su sistema (HowTo para Mac OS X). Ejecute get-composer.sh para instalar composer localmente en Linux. En lugar de usar Docker, puede configurar su propio entorno de tiempo de ejecución en función del DockerFile existente. Además, necesitará una base de datos más NodeJS y NPM para construir el frontend.
Paso 1: Ejecute composer para crear un nuevo proyecto Symlex:
composer create-project symlex/symlex myapp
El compositor solicitará valores de configuración para generar app/config/parameters.yml para usted.
Asegúrese de que storage/cache sea redactado para que la aplicación pueda crear archivos de caché.
Paso 2: Inicie Roadrunner y Mariadb usando docker-compose :
cd myapp
docker-compose up
NOTA: Esta configuración es solo para fines de prueba y desarrollo, consulte los comentarios en Docker-Compose.yml para más detalles. Es posible que deba ajustarlo si ejecuta Docker con un usuario diferente por razones de seguridad. En OS X, la versión actual de Docker es realmente lenta en la ejecución de PHP del sistema de archivos del host. docker-compose up -d ejecuta Docker en segundo plano, pero no verá mensajes de registro útiles en este caso.
Paso 3: Deje que inicialice la base de datos y cree los componentes frontales para usted:
make terminal
make all database
Para verificar que todo esté funcionando, ejecute make test .
Nota: También puede usar este enfoque para ejecutar otros comandos CLI más adelante. Make debe preinstalarse en entornos de desarrollo UNIX típicos; de lo contrario, es posible que tenga que obtenerlo primero, por ejemplo, instalando las herramientas de línea de comandos XCode en OS X a través de xcode-select --install o agregando el paquete de build-base o build-essential en Linux. El Makefile contiene una lista de todos los objetivos.
Después de una instalación exitosa, abra el sitio en http: // localhost: 8081/e inicie sesión como [email protected] utilizando la contraseña passwd .
Los archivos YAML ubicados en app/config configuran la aplicación en función de los parámetros y los servicios. Los archivos de configuración principales son app/config/web.yml y app/config/console.yml .
Si agrega localhost-debug a su /etc/hosts y accede al sitio con eso, se cargará en modo de depuración (verá una traza de pila y otra información de depuración en las páginas de error).
La interfaz de usuario de Mailhog está disponible en http: // localhost: 8025/. Se puede usar para recibir y ver correos enviados automáticamente por el sistema, por ejemplo, cuando se crean nuevos usuarios.
Si desea crear una aplicación más ligera, eche un vistazo a nuestros otros ejemplos:
Documentación completa: https://docs.symlex.org/en/latest/framework/
Symlex ahora incluye Roadrunner, un servidor de aplicaciones PHP de alto rendimiento, como alternativa a Nginx. Se descargará automáticamente cuando construya la imagen Docker.
Nuestras instrucciones de instalación para Symlex> = 4.4.0 no funcionarán para lanzamientos anteriores, ya que todavía usan NGINX y PHP-FPM. En lugar de web y php , ahora hay un solo servicio app impulsado por Roadrunner. Si prefiere NGINX, puede usar una versión anterior o copiar la configuración anterior a la nueva versión. Algunas de nuestras aplicaciones de ejemplo también usan NGINX.
Symlex es mantenido por Michael Mayer y tiene como objetivo simplificar el desarrollo web ágil al proporcionar un sistema de trabajo que promueva las mejores prácticas con el ejemplo. Michael lanzó su primer marco de PHP en 2001 y ha trabajado con varios proveedores de marco importantes en el pasado. Construir esto no hubiera sido posible sin mucho trabajo previo por parte de otros desarrolladores. ¡Gracias a aquellos y a todos los que contribuyeron!
La elección es el enemigo de la productividad. Dicho de otra manera, si su solución hace todo y no tiene opiniones sobre nada, entonces no resuelve nada. - Asim Aslam
No dude en enviar un correo electrónico a [email protected] si tiene alguna pregunta, necesita soporte comercial o simplemente quiere saludar. Agradecemos las contribuciones de cualquier tipo. Si tiene un error o una idea, lea nuestra guía antes de abrir un problema.
Es obvio que el rendimiento del marco de PHP depende principalmente de las líneas de código que deben ejecutarse para cada solicitud. Si bien Symlex fue diseñado para ser simple y delgado, un buen rendimiento es un subproducto muy importante de este enfoque.
El mejor código no es código. Donde no hay código, no hay errores. No hay API para aprender. No hay una interfaz de usuario incómoda. Los mejores refactores son las eliminaciones. - Eric Elliott
Según lo publicado por phpbenchmarks.com, las solicitudes de descanso son más del 40% más rápidas en comparación con otros marcos PHP comunes:
Tenga en cuenta que estos tiempos de respuesta se midieron en el modo de producción totalmente optimizado en el hardware del servidor rápido con solo 5 solicitudes concurrentes. En la práctica, las diferencias pueden ser mucho mayores en términos de tiempo absoluto. El consumo de memoria también debe considerarse:
¿Por qué deberías importarte? Primero, a sus usuarios les encantará. Como regla general, 100 ms son sobre el límite para que sientan que el sistema está reaccionando instantáneamente, lo que significa que no se necesita retroalimentación especial, excepto para mostrar el resultado. El tiempo de respuesta total también incluye red (~ 25 ms), navegador y otras sobrecargas, que solo deja una pequeña fracción de esos 100 ms para implementar la lógica comercial real. En segundo lugar, ahorrará mucho dinero para la infraestructura del servidor y los desarrolladores son más productivos, ya que las pruebas se ejecutan más rápido.
Symlex se inició en 2014 como un simple Silex Boilerplate, ya que Silex en sí no viene con una "edición estándar" que te apunta en la dirección correcta. Sensiolabs (los creadores de ambos marcos) recomendaron el uso de Silex en lugar de Symfony como una alternativa de peso ligero a Symfony + FosrestBundle para construir rápidamente servicios de descanso de alto rendimiento y aplicaciones web de una sola página.
Pronto se notó que Pimple, el contenedor de servicio que viene con Silex, se siente engorroso para los desarrolladores que provienen de Symfony y dificulta la reutilización del código existente. Además, muchos ejemplos de código Silex e incluso aplicaciones del mundo real accedieron al contenedor de servicio desde todas las partes del código (no solo el marco en sí), lo que evita la inversión de control y conduce a una probabilidad incómoda. Por lo tanto, Symlex promueve el uso estricto de la inyección de dependencia y combina la conveniencia de un contenedor de servicio completo con la velocidad de un micro-marco.
Hoy, Symlex tiene su propio componente de enrutamiento (basado en Symfony 4) y ya no usa Silex. El marco ha demostrado ser útil para una gran cantidad de aplicaciones diferentes. Algunos de ellos se basaron en el núcleo Symfony regular antes y hicieron el cambio porque se estaban ahogando en complejidad y sufrieron tiempos de respuesta muy por encima de 30 segundos en modo de desarrollo. Symlex los devolvió a la pista sin grandes cambios en su base de código existente.
Symlex es un proyecto sin fines de lucro ejecutado completamente por voluntarios. Es bienvenido a apoyarnos a través de patrocinadores de GitHub, especialmente si necesita ayuda para usar nuestro software. Coincidirán con cada donación en el primer año.
Deje una estrella si le gusta este proyecto, proporciona una motivación adicional para continuar. ¡Muchas gracias! <3