做了一个 Laravel/PHP 轻量规则引擎,想听听大家对业务规则管理的看法

AI摘要
这是一个关于开源PHP规则引擎RuleFlow PHP的技术分享与问题咨询帖。作者介绍了该轻量级规则引擎的定位——解决Laravel企业项目中业务判断逻辑散落、难以测试和解释的问题,并展示了核心功能如结构化规则定义、优先级执行、trace/explain输出等。帖子最后提出了三个具体问题,征求社区对实际使用场景、实用价值和API清晰度的反馈。整体内容属于正常的技术交流与开源项目推广,不涉及任何违规内容。

最近做了一个开源 PHP 包:RuleFlow PHP。

GitHub:

github.com/yl0711-coder/ruleflow-p...

它是一个面向 PHP / Laravel 项目的轻量 Decision List 规则引擎。

先说明一下,它不是 Drools 这类大型推理引擎,也不是工作流系统,更不是规则后台。它的定位比较小:解决 Laravel 企业项目里业务判断逻辑散落、难测试、难解释的问题。

我想解决的问题是这样的:

很多 Laravel 项目里,风控、审核、营销资格、订单复核这类业务判断,一开始通常就是几个 if/else。项目跑起来之后,规则会慢慢散落到 controller、service、job、validator、domain

service 里。

时间长了之后会出现几个问题:

  • 上线前不好校验规则是否写错

  • 线上命中某个决策后,很难解释为什么命中

  • 测试覆盖困难

  • 业务规则和业务流程代码混在一起

  • 新人接手时很难看懂判断链路

RuleFlow 的思路是把这些判断变成结构化规则,按优先级确定性执行,并提供 trace() / explain() 输出,方便排查和审计。

Laravel 里目前支持:

  • Service Provider 自动发现

  • 发布 config/ruleflow.php

  • Laravel Cache Store

  • php artisan ruleflow:validate

  • Laravel 10 / 11 / 12 CI 测试

  • 中英文文档

  • Laravel 风控示例

一个简单规则大概是这样:

```php

‘rules’ => [

[

‘name’ => ‘high_risk_order’,

‘priority’ => 100,

‘conditions’ => [

[‘field’ => ‘order.amount’, ‘operator’ => ‘>’, ‘value’ => 1000],

[‘field’ => ‘user.risk_score’, ‘operator’ => ‘<’, ‘value’ => 60],

],

‘action’ => ‘manual_review’,

‘reason’ => ‘High-risk order requires manual review.’,

],

],

执行后可以拿到结果,也可以看解释:

$result = app(\RuleFlow\RuleFlow::class)->evaluate($context);

$result->matched();

$result->action();

$result->explain();

项目地址:

github.com/yl0711-coder/ruleflow-p...

我现在主要想请教大家几个问题:

  • 你们在 Laravel 项目里会遇到这类业务规则散落的问题吗?

  • 这种轻量规则引擎有没有实际使用价值?

  • API 和文档是否足够清楚?

  • 如果你不会用,主要顾虑是什么?

欢迎直接拍砖,我准备根据真实反馈继续优化。

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!