This is a small and versatile rule engine that allows you run conditional logic and predetermined statements on a given context. It has a Parser that targets a very simplistic AST. By default, we have included a Blockly XML parser, but you can add pretty much anything else.
The recommended way to install Linio Rule Engine is through composer.
{
"require": {
"linio/rule-engine": "^1.0"
}
}
To run the test suite, you need install the dependencies via composer, then run PHPUnit.
$ composer install
$ phpunit
The RuleEngine interpreter uses a parser to create the AST tree based on a provided
string, which is the actual rule source. You can create your own parser or use an
existing one, like the BlocklyXmlParser
. A context must be an instance of a Dictionary
.
<?php
use Linio\Type\Dictionary;
use Linio\Component\RuleEngine\Interpreter;
$context = new Dictionary(['item' => 11]);
$interpreter = new Interpreter();
$interpreter->setParser(...);
$interpreter->evaluate('rule source', $context);