dbrekelmans / domain-driven-bundle
Domain driven directory structure configuration for Symfony.
Installs: 26
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 1
Forks: 0
Open Issues: 1
Type:symfony-bundle
Requires
- php: ^7.1
- dbrekelmans/coding-standard: ^1.0
- symfony/config: ^4.3|^5.0
- symfony/dependency-injection: ^4.3|^5.0
- symfony/finder: ^4.3|^5.0
- symfony/http-kernel: ^4.3|^5.0
- symfony/routing: ^4.3|^5.0
Requires (Dev)
- roave/backward-compatibility-check: ^4.0
- roave/security-advisories: dev-master
Suggests
- symfony/framework-bundle: Automatically configure services and routes for each domain context.
- symfony/twig-bundle: Automatically configure a template path per domain context.
This package is auto-updated.
Last update: 2020-10-01 00:18:59 UTC
README
This bundle provides automatic bundle configuration for a domain driven directory structure in Symfony.
Directory structure
The default configuration for this bundle automatically configures the following directory structure:
src/
├── <DomainContextA>/
│ ├── Application
│ ├── Domain
│ │ ├── Entity
│ │ ├── Event
│ │ ├── Factory
│ │ ├── Repository
│ │ ├── Service
│ │ └── ValueObject
│ ├── Infrastructure
│ │ └── config
│ │ │ ├── routes.yaml
│ │ │ └── services.yaml
│ └── Presentation
└── <DomainContextB>/
└── ...
Installation
Install the bundle with composer: composer require dbrekelmans/domain-driven-bundle
.
Routing
Bundle defined routing is never automatically imported in symfony. To automatically import the routing configuration from your context directories, add the following to config/routes.yaml
:
framework: resource: '@DomainDrivenBundle/Resources/config/routes.yaml'
Configuration
This bundle works out of the box with the directory structure as detailed above. You can configure the directory names and locations in your symfony application in config/packages/domain_driven.yaml
.
The default configuration is as follows:
domain_driven: directories: context: '%kernel.project_dir%/src' application: 'Application' domain: 'Domain' infrastructure: 'Infrastructure' presentation: 'Presentation' config: 'config' files: routes: 'routes' services: 'services'
Supported bundles
symfony/framework-bundle
Services
Service configuration files are automatically loaded from domain_driven.directories.context
/*/domain_driven.directories.infrastructure
/domain_driven.directories.config
/domain_driven.files.services
.{yaml,yml,xml,php}
.
Routing
Routing configuration files are automatically loaded from domain_driven.directories.context
/*/domain_driven.directories.infrastructure
/domain_driven.directories.config
/domain_driven.files.routes
.{yaml,yml,xml,php}
.
symfony/twig-bundle
Templates
Template files are automatically configured in domain_driven.directories.context
/*/domain_driven.directories.presentation
/domain_driven.directories.template
.
Roadmap
Additional bundles support
symfony/framework
(symfony/translation
)doctrine/doctrine-migrations-bundle
Maker command
Console command to create a new context skeleton based on your config. With default configuration will result in the directory structure as detailed above.