Microsymfony?
Acerca de ?
Microsymfony es un esqueleto de aplicación Symfony 7.2 sobre esteroides, listo para usar.
He hecho una larga publicación de blog que explica la filosofía y cómo usarla:
- Introducción de la plantilla de aplicación Microsymfony
Una regla: ¡la única dependencia obligatoria es PHP !
PD : Si desea utilizar la última versión de Symfony 6.4 LTS en su archivo composer.json , reemplace todas las ocurrencias de 7.2 con 6.4 y ejecute composer up .
Tabla de contenido
- Población
- De inicio rápido
- Con el binario Symfony
- Con frankenphp
- Requisitos
- Pila
- Características
- Ramas de características
- Infraestructura
- Base de datos
- Estampación
- Notas
- Symfony ux
- Archivos de configuración de PHP
- Otras buenas prácticas
- Referencias
- Que contribuye
- Seguridad
- Créditos
- Licencia
- Construido con microsimfony
Demos?
Porque una demostración en vivo siempre es mejor que todas las explicaciones:
- Demostración en vivo en https://microsymfony.ovh
- Demostración en vivo impulsada por Frankenphp en https://frankenphp.microsymfony.ovh
Inicio rápido ⚡
¿Con el binario Symfony?
Debe tener el Symfony Binary y el compositor instalado localmente.
Para crear un nuevo proyecto, desde la última etiqueta, ejecute:
composer create-project strangebuzz/microsymfony && cd microsymfony
Luego inicie el servidor PHP con la marca:
O con ricino:
Abra https://127.0.0.1:8000 (teniendo en cuenta que su puerto 8000 es gratis) y disfrute. ?
PD : También puede usar el botón verde "Use esta plantilla ⇩" en la parte superior derecha de la página de inicio del proyecto GitHub. Esto crea un nuevo repositorio de la rama principal en lugar de la última versión. Garantizo que todos los compromisos en general son estables; Puede verificar que los trabajos de CI asociados sean ✅.
Con frankenphp?
También podemos usar Frankenphp para ejecutar microsimfony. Debe tener Docker instalado localmente.
Cree un nuevo proyecto desde la plantilla de GitHub, ejecute:
docker run --rm -it -v $PWD:/app composer:latest create-project strangebuzz/microsymfony && cd microsymfony
Instale el tiempo de ejecución de Frankenphp Symfony:
docker run --rm -it -v $PWD:/app composer:latest require runtime/frankenphp-symfony
Luego corre:
docker run
-e FRANKENPHP_CONFIG="worker ./public/index.php"
-e APP_RUNTIME=Runtime\FrankenPhpSymfony\Runtime
-v $PWD:/app
-p 80:80 -p 443:443
-d
dunglas/frankenphp
Abra https: // localhost y disfrute! ?
PD : En Windows, reemplace $PWD con "%cd%" .
También puede usar directamente la rama Frankenphp.
Requisitos ⚙
- PHP 8.2 (también funciona con PHP 8.3 y PHP 8.4)
- El Symfony Cli
Requisitos opcionales?
- La extensión de PHP XDebug si desea ejecutar el informe de cobertura de código
- Castor Task Runner si no quieres usar Make y su MakEfile
Pila ?
- Php 8.2 a 8.4
- Symfony 7.2
- Ramita 3.8
- Estímulo cableado 3.2 y turbo 8.0
- Phpunit 11.5
- Pico CSS 2.0
Características
Microsymfony envía estas características, listas para usar:
- Dos corredores de tareas
- Make (fuente) (demostración)
- Castor (fuente) (demostración)
- Análisis estático con phpstan 2
- Estándares de codificación con PHP-CS-Fixer
- Pruebas (demostración)
- Ejemplo de prueba unitaria
- Ejemplo de prueba de integración
- Ejemplo de prueba funcional
- Ejemplo de prueba de API
- Ejemplo de prueba E2E
- Cobertura de código al 100% (umbral configurable)
- Informe de cobertura sobre ScuTinizer
- Github CI (Acciones)
- Prueba la salida de trabajo
- Salida de trabajo de pelusa
- Salida de trabajo de seguridad
- Activo mapeador+estímulo (documentación)
- Vainilla js (fuente) (demostración)
- Obtenga un punto final JSON de la aplicación (fuente) (demostración)
- Una plantilla de error personalizado
Ramas de características?
Las ramas de características no se fusionan en la rama principal, sino que se utilizan para probar la integración de una nueva biblioteca de proveedores o hacer un POC. Por ejemplo, ¿alguna vez has soñado con probar Eloquent, el Laravel Orm, en un proyecto Symfony? Luego clone la rama eloquent y ejecute composer install && make load-fixtures .
Infraestructura
- Frankenphp (PR, Branch, rebajado el 2024-11-17)
- Symfony-Docker (PR, Branch, rebajado el 2024-11-17)
Base de datos?
Estas ramas de «base de datos» tienen como objetivo mostrar una lista de registros de una base de datos SQLite.
- Doctrine Dbal (PR, Branch, rebajado el 2024-12-22)
- ELOQUENT ORM (PR, rama, rebajado el 2024-11-17)
¿Herramientas?
- Taskfile (PR, rama, rebajado el 2024-11-17)
- Twigstan (PR, Branch, rebajado el 2024-11-17)
- Twig-CS-Fixer (PR, Branch, rebajado el 2024-11-21)
Uno rebaseará con esas sucursales regularmente para que siempre estén al día.
Notas?
Symfony-ux
Los formularios turbo están deshabilitados en activos/app.js. Para habilitar la función para un formulario determinado, agregue el atributo data-turbo="true" . O cambie el parámetro Turbo.setFormMode on activar la función a nivel mundial. En ambos casos, su código de controlador debe modificarse en consecuencia.
Archivos de configuración de PHP
Si instala una nueva biblioteca Symfony, las recetas Flex pueden agregar archivos YAML a su proyecto. Estos archivos YAML se cargan, pero puede convertirlos en PHP como los otros archivos de configuración. Por ejemplo, para convertir la configuración de messenger YAML en PHP con Simplify, ejecute:
vendor/bin/config-transformer convert config/packages/messenger.yaml
¿Otras buenas prácticas?
- Uso de archivos de configuración PHP en lugar de YAML (fuente)
- Uso de tipos estrictos en todos los archivos PHP (fuente)
- Uso del patrón ADR en un controlador de acción (fuente) (DOC)
- El archivo composer.json se normaliza con ergebnis/composer-normalizal
- Uso del complemento de compositor Bin para instalar y ejecutar PHP-CS-Fixer
Referencias
- Cómo cambiar de las configuraciones YAML a PHP hoy con Symplify (tomasvotruba.com)
- ¡Phpstan 2.0 lanzado con Nivel 10 y Elephpants! (phpstan.org)
- Un mejor patrón ADR para sus controladores Symfony (Strangebuzz.com)
- Mi configuración de archivo de tareas para Symfony (jmsche.fr)
- Debería usar Phpstans Bleeding Edge (backendtea.com)
- ¿Una buena convención de nombres para rutas, controladores y plantillas? (jolicode.com)
- Desarrollo de aplicaciones front-end, estilo Symfony (s) (Dunglas.dev)
- Verificaciones de cobertura de prueba automatizada con Travis, Phpunit para solicitudes de extracción de GitHub (ocramius.github.io)
- Instalación y uso de PHP-CS-Fixer (strangebuzz.com)
- Castor, un viaje a través del mar de corredores de tareas (jolicode.com)
- Inicializando su proyecto Symfony con bases sólidas (strangebuzz.com)
- Organización de sus pruebas de proyecto Symfony (Strangebuzz.com)
- ¿Cuáles son tus mejores prácticas de Symfony? (Strangebuzz.com)
- Configuración de un flujo de trabajo CI/CD para un proyecto Symfony gracias a las acciones de Github (strangebuzz.com)
- Las mejores prácticas de Symfony Framework (Symfony.com)
Contribuyendo?
Consulte Contriping y Code_of_Conduct para más detalles.
Seguridad ?
Consulte la seguridad para más detalles.
Créditos
- Bobina (mantenedor primario)
- Todos los contribuyentes
Licencia ⚖️
La licencia MIT (MIT). Consulte el archivo de licencia para obtener más información.
Construido con microsimfony
- PLATISHOLD.OVH (2024-12-01)
- Apartement-tourcoing.com (2024-11-30)
- EasyAdmin Mercure Demo (2023-05-24)