dahovitech / module-bundle
Un système de modules pour Symfony 7.3 inspiré de nwidart/laravel-modules
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=8.1
- doctrine/doctrine-bundle: ^2.10
- doctrine/migrations: ^3.6
- doctrine/orm: ^2.15
- symfony/cache: ^7.0
- symfony/config: ^7.0
- symfony/console: ^7.0
- symfony/dependency-injection: ^7.0
- symfony/event-dispatcher: ^7.0
- symfony/filesystem: ^7.0
- symfony/finder: ^7.0
- symfony/framework-bundle: ^7.0
- symfony/yaml: ^7.0
Requires (Dev)
- phpunit/phpunit: ^10.0
- symfony/phpunit-bridge: ^7.0
- symfony/var-dumper: ^7.0
This package is not auto-updated.
Last update: 2025-08-01 11:30:01 UTC
README
Un système de modules pour Symfony 7.3 inspiré de nwidart/laravel-modules
, permettant de structurer votre application en modules indépendants et réutilisables.
🚀 Fonctionnalités
- Auto-découverte des modules : Détection automatique des modules dans votre application
- Gestion des dépendances : Support des dépendances entre modules avec résolution automatique
- Commandes CLI : Outils en ligne de commande pour créer et gérer vos modules
- Intégration Doctrine : Support automatique des entités et migrations par module
- Templates Twig : Namespaces automatiques pour les templates de chaque module
- Cache intelligent : Système de cache pour optimiser les performances
- Tests inclus : Suite de tests complète pour assurer la fiabilité
📋 Prérequis
- PHP 8.1 ou supérieur
- Symfony 7.0 ou supérieur
- Composer
📦 Installation
Via Composer
composer require dahovitech/module-bundle
Enregistrement du Bundle
Ajoutez le bundle dans config/bundles.php
:
<?php return [ // ... autres bundles DahoviTech\ModuleBundle\ModuleBundle::class => ['all' => true], ];
Configuration
Créez le fichier config/packages/modules.yaml
:
modules: path: '%kernel.project_dir%/modules' auto_discovery: true enabled_modules: [] disabled_modules: []
🏗️ Structure d'un Module
modules/
├── Blog/
├── config/
├── module.yaml
├── services.yaml
└── routes.yaml
├── src/
├── Controller/
├── Entity/
├── Repository/
├── Service/
└── Form/
├── templates/
├── translations/
├── tests/
├── public/
├── migrations/
└── composer.json
🚀 Démarrage Rapide
1. Créer votre premier module
php bin/console module:make Blog
2. Lister les modules
php bin/console module:list
3. Voir le statut d'un module
php bin/console module:status Blog
4. Générer un contrôleur
php bin/console module:generate:controller Blog PostController --actions=index,show,create,edit --template
📚 Commandes Disponibles
Commande | Description |
---|---|
module:make <name> |
Créer un nouveau module |
module:list |
Lister tous les modules |
module:status [name] |
Afficher le statut des modules |
module:enable <name> |
Activer un module |
module:disable <name> |
Désactiver un module |
module:generate:controller |
Générer un contrôleur |
🔧 Configuration Avancée
Configuration des Modules
Chaque module peut être configuré via son fichier config/module.yaml
:
name: Blog description: "Module de gestion de blog" version: "1.0.0" dependencies: - User - Core auto_enable: true environments: - dev - prod - test
Services
Les services sont définis dans config/services.yaml
du module :
services: _defaults: autowire: true autoconfigure: true App\Modules\Blog\: resource: '../src/*' exclude: '../src/{Entity,Tests}'
Routes
Les routes sont définies dans config/routes.yaml
:
blog_index: path: /blog controller: App\Modules\Blog\Controller\BlogController::index methods: [GET]
🧪 Tests
Exécuter les tests :
composer test
Avec couverture :
composer test-coverage
📖 Documentation
- Guide d'installation détaillé
- Création de modules
- Gestion des dépendances
- Intégration Doctrine
- Templates et vues
- Migration depuis d'autres systèmes
🤝 Contribution
Les contributions sont les bienvenues ! Veuillez consulter CONTRIBUTING.md pour plus d'informations.
📄 Licence
Ce projet est sous licence MIT. Voir LICENSE pour plus de détails.
🙏 Remerciements
Ce bundle s'inspire de nwidart/laravel-modules pour Laravel.
📞 Support
Développé avec ❤️ par DahoviTech