承接 fr3on/php-ruleset 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

fr3on/php-ruleset

最新稳定版本:0.0.1

Composer 安装命令:

composer require fr3on/php-ruleset

包简介

Standalone business rule and expression evaluator for PHP 8.4+

README 文档

README

CI License

A standalone, framework-agnostic PHP 8.4+ expression and business rule evaluator. Secure, fast, and 100% type-safe (PHPStan Level 9).

Features

  • Recursive Descent Parser: Pure AST-based evaluation (no eval()).
  • Secure by Design: Strict whitelist for all identifiers and functions.
  • Dot-Notation: Easily resolve nested data like user.profile.age.
  • Zero Dependencies: 100% standalone.
  • PHP 8.4+: Leverages property hooks and readonly classes.

Installation

composer require fr3on/php-ruleset

Quick Start

use Fr3on\Ruleset\Ruleset;

$ruleset = new Ruleset();

$rule = 'order.total * 1.15 > 1000 AND user.country IN ["SA", "AE"]';
$data = [
    'order' => ['total' => 1000],
    'user' => ['country' => 'SA']
];

$result = $ruleset->execute($rule, $data); // true

Advanced Usage

Custom Functions

$ruleset->registerFunction('is_premium', fn($userId) => $db->isPremium($userId));

$ruleset->execute('is_premium(user.id) AND order.discount > 0.2', $data);

Pre-parsing & Caching

For high-performance scenarios, parse the expression once and cache the AST.

$ast = $ruleset->parse('x > 10');

// Reuse $ast across many evaluations
$result = $ruleset->evaluate($ast, ['x' => 15]);

Security

RuleSet uses a strict whitelist approach.

  1. All identifiers must exist in the provided context.
  2. Only whitelisted functions can be called.
  3. Math operations enforce numeric types strictly.

License

MIT

统计信息

  • 总下载量: 220
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 6
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-04-13

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固