How allmacht/domain-forge works
Domain Forge is a Laravel package that scaffolds DDD and hexagonal domain modules. Its principal workflow is an Artisan command that parses property definitions and delegates module creation to generators for domain and infrastructure artifacts; model and migration customization are optional. A separate install command creates the shared base structure. The graph reflects documented capabilities and indexed references; some generator internals were not excerpted, so their relationships are shown only where the orchestrator or README supports them.
Main entry points: ModuleGenerator.php Module orchestrator · createModuleCommand.php Domain command · DomainForgeServiceProvider.php Package service provider · PropertyParser.php Property parser
Components 19
Artisan entry points
- Base installer
src/Console/Commands/InstallCommand.php - Domain command
src/Console/Commands/createModuleCommand.php
Property modeling
- Property parser
src/Support/PropertyParser.php - Property model
src/Support/Property.php - ID strategy
src/Support/IdStrategy.php
Domain generators
- Directory structure
src/Generators/DirectoryStructureGenerator.php - Entity generator
src/Generators/EntityGenerator.php - Value object generator
src/Generators/ValueObjectGenerator.php - Enum generator
src/Generators/EnumGenerator.php
Infrastructure generators
- Mapper generator
src/Generators/MapperGenerator.php - Repository generator
src/Generators/RepositoryGenerator.php - Routes generator
src/Generators/RoutesGenerator.php - Module provider generator
src/Generators/ServiceProviderGenerator.php - Migration generator
src/Generators/MigrationGenerator.php - Model customizer
src/Generators/ModelCustomizer.php
Package integration
- Module orchestrator
src/Generators/ModuleGenerator.php - Package service provider
src/Providers/DomainForgeServiceProvider.php - Package version
src/DomainForge.php
Other components
- Laravel Artisan
Connections 19
- Laravel Artisan → Base installer: runs install
README.md - Laravel Artisan → Domain command: runs domain command
README.md - Domain command → Property parser: parses properties
src/Console/Commands/createModuleCommand.php - Domain command → Module orchestrator: delegates generation
src/Console/Commands/createModuleCommand.php - Property parser → Property model: builds properties
src/Support/PropertyParser.php - Property parser → ID strategy: selects ID strategy
src/Support/PropertyParser.php - Module orchestrator → Directory structure: creates structure
src/Generators/ModuleGenerator.php - Module orchestrator → Enum generator: generates enums
src/Generators/ModuleGenerator.php - Module orchestrator → Value object generator: generates value objects
src/Generators/ModuleGenerator.php - Module orchestrator → Entity generator: generates entity
src/Generators/ModuleGenerator.php - Module orchestrator → Mapper generator: generates mapper
src/Generators/ModuleGenerator.php - Module orchestrator → Repository generator: generates repository
src/Generators/ModuleGenerator.php - Module orchestrator → Routes generator: generates routes
src/Generators/ModuleGenerator.php - Module orchestrator → Module provider generator: generates provider
src/Generators/ModuleGenerator.php - Module orchestrator → Migration generator: optionally generates
src/Generators/ModuleGenerator.php - Module orchestrator → Model customizer: optionally customizes
src/Generators/ModuleGenerator.php - Package service provider → Domain command: registers command
src/Providers/DomainForgeServiceProvider.php - Package service provider → Base installer: registers command
src/Providers/DomainForgeServiceProvider.php - Package service provider → Module orchestrator: binds generator
src/Providers/DomainForgeServiceProvider.php