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

v1.1.0 2025-07-31 11:19 UTC

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

🤝 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