# matrix_rule **Repository Path**: adminmatrix/matrix_rule ## Basic Information - **Project Name**: matrix_rule - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-30 - **Last Updated**: 2026-02-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Matrix Rule Engine Matrix Rule Engine 是一个基于 PHP 的规则引擎,专为 AdminMatrix 后台系统设计,用于管理和执行各种业务规则。 ## 功能特性 - 灵活的规则定义和执行机制 - 支持多种规则类型 - 简单易用的 API 接口 - 可扩展的规则系统 - 与 AdminMatrix 无缝集成 ## 目录结构 ``` src/ ├── engine/ # 规则引擎核心 │ └── Engine.php # 引擎实现 ├── rule/ # 规则定义 │ ├── RuleInterface.php # 规则接口 │ ├── BaseRule.php # 基础规则类 │ └── NumericRule.php # 数值比较规则示例 ├── service/ # 服务层 │ └── RuleService.php # 规则服务 └── config/ # 配置目录 ``` ## 安装 ### 通过 Composer 安装 ```bash composer require adminmatrix/matrix_rule ``` ### 手动安装 将本目录复制到 `vendor/adminmatrix/` 目录下,并在 `composer.json` 中添加: ```json "repositories": [ { "type": "path", "url": "vendor/adminmatrix/matrix_rule" } ], "require": { "adminmatrix/matrix_rule": "dev-master" } ``` 然后运行: ```bash composer dump-autoload ``` ## 使用示例 ### 基本用法 ```php // 引入命名空间 use adminmatrix\matrix_rule\service\RuleService; use adminmatrix\matrix_rule\rule\NumericRule; // 添加规则 RuleService::addRule(new NumericRule('数值大于10', '检查数值是否大于10', '>', 10)); // 执行规则 $result = RuleService::execute(15); print_r($result); // 输出:Array ( [0] => Array ( [rule] => adminmatrix\matrix_rule\rule\NumericRule [result] => 1 ) ) ``` ### 执行指定规则 ```php // 执行指定规则 $result = RuleService::executeRule('adminmatrix\matrix_rule\rule\NumericRule', 5); echo $result; // 输出: ``` ### 添加多个规则 ```php // 引入其他规则类 use adminmatrix\matrix_rule\rule\StringRule; use adminmatrix\matrix_rule\rule\ArrayRule; // 添加多个规则 RuleService::addRules([ new NumericRule('数值大于10', '检查数值是否大于10', '>', 10), new StringRule('字符串长度大于5', '检查字符串长度是否大于5', '>', 5), new ArrayRule('数组元素大于3', '检查数组元素是否大于3', '>', 3) ]); // 执行所有规则 $result = RuleService::execute(['value' => 15, 'text' => 'Hello World', 'items' => [1, 2, 3, 4, 5]]); print_r($result); ``` ## 自定义规则 要创建自定义规则,只需实现 `RuleInterface` 接口或继承 `BaseRule` 类: ```php condition = $condition; } public function execute($data) { // 实现自定义规则逻辑 if (is_callable($this->condition)) { return call_user_func($this->condition, $data); } return false; } public function setCondition(callable $condition) { $this->condition = $condition; return $this; } } ``` ## 配置 规则引擎支持通过配置文件进行配置,配置文件位于 `config/rule.php`: ```php [ // 规则缓存设置 'cache' => [ 'enabled' => false, 'ttl' => 3600 ] ], // 默认规则配置 'rules' => [ // 在这里配置默认规则 ] ]; ``` ## 许可证 本项目采用 GNU General Public License v2.0 许可证,详见 [LICENSE](LICENSE) 文件。 ## 贡献 欢迎提交 Issue 和 Pull Request 来改进这个项目。 ## 联系方式 - 项目地址:https://github.com/adminmatrix/matrix_rule - 邮件:team@adminmatrix.com