Download the PHP package nicolasjourdan/business-logic-bundle without Composer
On this page you can find all versions of the php package nicolasjourdan/business-logic-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download nicolasjourdan/business-logic-bundle
More information about nicolasjourdan/business-logic-bundle
Files in nicolasjourdan/business-logic-bundle
Package business-logic-bundle
Short Description This bundle helps you to create and to implement your business logic
License MIT
Homepage https://github.com/NicolasJourdan/business-logic-bundle
Informations about the package business-logic-bundle
Business Logic Bundle
The BusinessLogicBundle helps you to create and to implement your business rules.
Installation
Step 1: Download the Bundle
Open a command console, enter your project directory and execute:
Step 2: Enable the Bundle
Then, enable the bundle by adding it to the list of registered bundles
in the config/bundles.php
file of your project:
Documentation
The source of the documentation is stored in the Resources/doc/
folder in this bundle.
The full documentation is here.
This bundle implements 3 design patterns (Specification, Rules and Chain of responsibility) in order to define a system to help you to create your own business rules.
There are 3 important objects in this conception :
- Specification : This is your business condition. It is used to define if a business rule has to be executed on the current candidate.
- Rule : This is your business rule.
- RulesEngine : This object contains several rules and executes ones which have to be executed on the current candidate.
Please, feel free to see the demo.
Basic Usage
Create a Specification
The specification class
You can generate this class with the next command bin/console make:specification IsDummySpecification
.
Create a Rule
The rule class
Thanks to the private constant BUSINESS_LOGIC_TAGS
you can dynamically add tags on your rule.
This constant must be an array of arrays. Each array corresponds to a tag. The first argument must be a string
and it is corresponding to the tag name. The second one is optional, it must be an integer and it is corresponding to the priority.
You can generate this class with the next command bin/console make:rule DummyRule
.
The service declaration
You dont need to declare your rules into the services.yml file thanks to the indication implements RuleInterface
.
If you decide to declare it into this file, the tags that you defined will be automatically merged with those of the constant.
For instance, the DummyRule
will be tagged with : rule.user.vip
, rule.user.basic
, rule.user.awesome
and rule.user.another_tag
.
Create a RulesEngine
RulesEngine declaration
Use your created RulesEngine
Your service class
The service declaration
License
This bundle is under the MIT license. See the complete license in this bundle.