Microsymfony?
À propos ?
Microsymfony est un squelette d'application Symfony 7.2 sur des stéroïdes, prêt à l'emploi.
J'ai fait un long article de blog expliquant la philosophie derrière et comment l'utiliser:
- Présentation du modèle d'application Microsymfony
Une règle: la seule dépendance obligatoire est PHP !
PS : Si vous souhaitez utiliser la dernière version Symfony 6.4 LTS dans votre fichier composer.json , remplacez toutes les occurrences de 7.2 par 6.4 et exécutez composer up .
Table des matières
- Démos
- Démarrer rapidement
- Avec le binaire symfony
- Avec Frankenphp
- Exigences
- Empiler
- Caractéristiques
- Branches de fonctionnalités
- Infrastructure
- Base de données
- Outillage
- Notes
- Symfony UX
- Fichiers de configuration PHP
- Autres bonnes pratiques
- Références
- Contributif
- Sécurité
- Crédits
- Licence
- Construit avec Microsymfony
Démos?
Parce qu'une démo en direct est toujours meilleure que toutes les explications:
- Démo en direct sur https://microsymfony.ovh
- Demo en direct propulsé par Frankenphp sur https://frankenphp.microsymfony.ovh
Démarrage rapide ⚡
Avec le binaire Symfony?
Vous devez installer le binaire et le compositeur de Symfony localement.
Pour créer un nouveau projet, à partir de la dernière balise, exécutez:
composer create-project strangebuzz/microsymfony && cd microsymfony
Puis démarrez le serveur PHP avec Make:
Ou avec Castor:
Ouvrez https://127.0.0.1:8000 (étant donné que votre port 8000 est gratuit) et profitez-en! ?
PS : Vous pouvez également utiliser le bouton vert "Utilisez ce modèle ⇩" en haut à droite de la page d'accueil du projet GitHub. Cela crée un nouveau référentiel à partir de la branche principale au lieu de la dernière version. Je garantis que tous les engagements sur la principale sont stables; Vous pouvez vérifier que les travaux CI associés sont ✅.
Avec Frankenphp?
Nous pouvons également utiliser FrankenPHP pour exécuter la microsymfonie. Vous devez faire installer localement Docker.
Créez un nouveau projet à partir du modèle GitHub, exécutez:
docker run --rm -it -v $PWD:/app composer:latest create-project strangebuzz/microsymfony && cd microsymfony
Installez le runtime Symfony FrankenPHP:
docker run --rm -it -v $PWD:/app composer:latest require runtime/frankenphp-symfony
Puis courez:
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
Ouvrez https: // localhost et profitez-en! ?
PS : Sur Windows, remplacez $PWD par "%cd%" .
Vous pouvez également utiliser directement la succursale FrankenPHP.
Exigences ⚙
- PHP 8.2 (fonctionne également avec PHP 8.3 et PHP 8.4)
- La CLI Symfony
Exigences facultatives?
- L'extension XDebug PHP si vous souhaitez exécuter le rapport de couverture de code
- Runner de tâche Castor si vous ne voulez pas utiliser la marque et sa makefile
Empiler ?
- PHP 8,2 à 8,4
- Symfony 7.2
- Twig 3.8
- Stimulus hotwired 3.2 et turbo 8.0
- Phpunit 11.5
- Pico CSS 2.0
Caractéristiques
Microsymfony expédie ces fonctionnalités, prête à l'emploi:
- Deux coureurs de tâches
- Faire (source) (démo)
- Ringor (source) (démo)
- Analyse statique avec phpstan 2
- Normes de codage avec PHP-CS-Fixer
- Tests (démo)
- Exemple de test unitaire
- Exemple de test d'intégration
- Exemple de test fonctionnel
- Exemple de test de l'API
- Exemple de test E2E
- Couverture de code à 100% (seuil configurable)
- Rapport de couverture sur l'examen
- Github CI (actions)
- Teste la sortie du travail
- Sortie de travail de charpie
- Sortie du travail de sécurité
- Asset Mapper + stimulus (documentation)
- Vanilla JS (source) (démo)
- Réfléchissez sur un point de terminaison JSON de l'application (source) (démo)
- Un modèle d'erreur personnalisé
Branches de fonctionnalités?
Les branches de fonctionnalités ne sont pas fusionnées dans la branche principale mais sont utilisées pour tester l'intégration d'une nouvelle bibliothèque de fournisseurs ou faire un POC. Par exemple, avez-vous déjà rêvé de tester Eloquent, le Laravel Orm, sur un projet Symfony? Clonez ensuite la branche eloquent et exécutez composer install && make load-fixtures .
Infrastructure
- FrankenPhp (PR, branche, repoussé le 2024-11-17)
- Symfony-Docker (PR, branche, repoussé le 2024-11-17)
Base de données?
Ces branches de «base de données» visent à afficher une liste des enregistrements à partir d'une base de données SQLite.
- Doctrine Dbal (PR, branche, rebelle le 2024-12-22)
- Orm éloquent (PR, branche, repoussé le 2024-11-17)
Outillage?
- TaskFile (PR, branche, repoussé le 2024-11-17)
- Twigstan (PR, branche, rebelle le 2024-11-17)
- Twig-Cs-Fixer (PR, branche, repoussé le 2024-11-21)
L'un rébase régulièrement ces succursales afin qu'elles soient toujours à jour.
Notes?
Symfony-uux
Les formulaires turbo sont désactivés dans Assets / App.js. Pour activer la fonctionnalité pour un formulaire donné, ajoutez l'attribut data-turbo="true" . Ou modifiez le paramètre Turbo.setFormMode vers on pour activer la fonctionnalité globalement. Dans les deux cas, votre code de contrôleur doit être modifié en conséquence.
Fichiers de configuration PHP
Si vous installez une nouvelle bibliothèque Symfony, les recettes Flex peuvent ajouter des fichiers YAML à votre projet. Ces fichiers YAML sont chargés, mais vous pouvez les convertir en PHP comme les autres fichiers de configuration. Par exemple, pour convertir la configuration messenger YAML en PHP avec Simplify, exécutez:
vendor/bin/config-transformer convert config/packages/messenger.yaml
Autres bonnes pratiques?
- Utilisation de fichiers de configuration PHP au lieu de YAML (source)
- Utilisation de types stricts dans tous les fichiers PHP (source)
- Utilisation du modèle ADR dans un contrôleur d'action (source) (DOC)
- Le fichier composer.json est normalisé avec Ergebnis / Composer-normalize
- Utilisation du plugin Bin Composer pour installer et exécuter PHP-CS-Fixer
Références
- Comment passer des configurations YAML à PHP aujourd'hui avec Symplify (tomasvotruba.com)
- PHPSTAN 2.0 sorti avec le niveau 10 et les éléphpants! (phpstan.org)
- Un meilleur modèle ADR pour vos contrôleurs Symfony (StrangeBuzz.com)
- Ma configuration de fichier de tâche pour symfony (jmsche.fr)
- Vous devriez utiliser PHPSTANS Saiding Edge (BackendTea.com)
- Une bonne convention de dénomination pour les itinéraires, les contrôleurs et les modèles? (jolicode.com)
- Développement des applications frontales, style Symfony (Dunglas.dev)
- Vérification automatisée de la couverture des tests avec Travis, phpunit pour les demandes de traction GitHub (ocramius.github.io)
- Installation et utilisant PHP-CS-FIXer (StrangeBuzz.com)
- Castor, un voyage à travers la mer des coureurs de tâches (Jolicode.com)
- Initialiser votre projet Symfony avec des fondations solides (StrangeBuzz.com)
- Organisation de vos tests de projet Symfony (StrangeBuzz.com)
- Quelles sont vos meilleures pratiques Symfony? (StrangeBuzz.com)
- Définir un flux de travail CI / CD pour un projet Symfony grâce aux actions GitHub (StrangeBuzz.com)
- Les meilleures pratiques de Symfony Framework (Symfony.com)
Contribuant?
Veuillez consulter la contribution et le code_of_conduct pour plus de détails.
Sécurité ?
Veuillez consulter la sécurité pour plus de détails.
Crédits
- Bobine (mainteneur primaire)
- Tous les contributeurs
Licence ⚖️
La licence MIT (MIT). Veuillez consulter le fichier de licence pour plus d'informations.
Construit avec Microsymfony
- Placehold.ovh (2024-12-01)
- Appartement-tourcoing.com (2024-11-30)
- Demo EasyAdmin Mercure (2023-05-24)