dahovitech/module-bundle
最新稳定版本:v1.1.0
Composer 安装命令:
composer require dahovitech/module-bundle
包简介
Un système de modules pour Symfony 7.3 inspiré de nwidart/laravel-modules
README 文档
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
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-07-31