Download the PHP package jakubciszak/rule-engine without Composer
On this page you can find all versions of the php package jakubciszak/rule-engine. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package rule-engine
Rule Engine
Rule Engine is a PHP library designed to evaluate complex rules and propositions. It supports various operators and can handle propositions and variables.
This model is based on rule archetype pattern from book "Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML" by Jim Arlow and Ila Neustadt.
Requirements
- PHP 8.3 or higher
- Composer
Installation
To install the library, use Composer:
`
Usage
Notation
This implementation use Reverse Polish Notation (RPN). \ RPN is a mathematical notation in which operators follow their operands. This notation eliminates the need for parentheses that are used in standard infix notation, making the evaluation of expressions simpler and more efficient.
For example, the expression \
(2 + 3) * 5
\
in standard notation would be written as \
2 3 + 5 *
in RPN.
In this notation, you first add 2 and 3 to get 5, and then multiply by 5 to get 25.
The Rule Engine uses RPN to simplify the process of building conditions, making it more intuitive to construct complex logical expressions.
Creating Rules
You can create rules using the provided methods for different operators:
Evaluating Rules
To evaluate a rule, you need to provide a RuleContext
:
Development
Running Tests
To run the tests, use PHPUnit:
Contributing
Contributions are welcome! Please open an issue or submit a pull request.
License
This project is licensed under the MIT License.
Authors
- Jakub Ciszak - [email protected]
Additional Information
- The project uses the
munusphp/munus
library for functional programming constructs. - The source code is located in the
src/
directory. - Tests are located in the
tests/
directory.