Download the PHP package php-kitchen/yii2-domain without Composer
On this page you can find all versions of the php package php-kitchen/yii2-domain. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download php-kitchen/yii2-domain
More information about php-kitchen/yii2-domain
Files in php-kitchen/yii2-domain
Package yii2-domain
Short Description Implementation of DDD key concepts for Yii2.
License MIT
Informations about the package yii2-domain
Yii2 Domain is a Domain Driven Design patterns implementation for Yii2.
Includes realization of a following patterns:
- Repository
- Entity
- Specification (very rough implementation through ActiveQuery)
- Strategy
Requirements
PHP >= 7.1
is required.
Getting Started
Run the following command to add Yii2 Domain to your project's composer.json
. See Packagist for specific versions.
Or you can copy this library from:
For additional information and guides go to the project documentation
Overview
Goal of this library is to introduce Domain Driven Design(DDD) principles to Yii2 projects and to fix ActiveRecord problem of domain layer in applications with medium and large domain area.
Each model represented as a standalone directory that contains repository, entity, record and query classes. All of these classes represent a domain model.
DIRECTORY STRUCTURE OF A TYPICAL MODEL(AS EXAMPLE - USER MODEL)
user/ contains all of the classes that represents domain model
UserRepository model repository
UserEntity model entity(represents domain entity - not the DB table that containd entity information)
UserRecord DB record that contains entity information
ProfileRecord DB record with additional information thta also a part of the UserEntity.
UserQuery query class of model e.g. - specification of the entity
Code examples
Simple search and store:
Complex criteria search and deleting:
Note:
this library is designed to solve ActiveRecord problem of Yii 2. Don't use this library if you are starting a new project and looking for a solution that would allow you to build a decent architecture - you need a good framework that would allow you do build high-quality solution and Yii 2 is not a framework that would allow you to build high quality architecture and implement rich domain layer.
"Yii2Domain" library is a crutch designed to solve issues of domain layer caused by ActiveRecord in existing projects. There are few decent solutions to build domain layer in a new project:
- Spot ORM
- Symfony + Doctrine (preferable solution)
- Eloquent ORM (if you like Laravel and you are not working with enterprise applications)
Contributing
If you want to ask any questions, suggest improvements or just to talk with community and developers, join our server at Discord