linio/rule-engine

多功能的规则引擎,允许在给定的上下文中应用逻辑。

2.0.0 2022-12-29 23:00 UTC

README

Latest Stable Version License Build Status Scrutinizer Code Quality

这是一个小型且多功能的规则引擎,允许你在给定的上下文中运行条件逻辑和预定义的语句。它有一个解析器,目标是非常简单的AST。默认情况下,我们包括了一个Blockly XML解析器,但你几乎可以添加任何其他内容。

安装

安装Linio规则引擎的推荐方法是通过composer

{
    "require": {
        "linio/rule-engine": "^1.0"
    }
}

测试

要运行测试套件,你需要通过composer安装依赖,然后运行PHPUnit。

$ composer install
$ phpunit

用法

RuleEngine解释器使用解析器根据提供的字符串创建AST树,这是实际的规则源。你可以创建自己的解析器或使用现有的一个,比如BlocklyXmlParser。上下文必须是一个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);