1. Go to this page and download the library: Download hejunjie/simple-rule-engine library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
hejunjie / simple-rule-engine example snippets
use Hejunjie\SimpleRuleEngine\Rule;
use Hejunjie\SimpleRuleEngine\Engine;
// 1. Define rules
$rules = [
new Rule('age', '>=', 18, 'Age must be 18 or older'),
new Rule('country', '==', 'SG', 'Country must be Singapore'),
];
// 2. Prepare data
$data = [
'age' => 20,
'country' => 'SG',
];
// 3. Evaluate
$result = Engine::evaluate($rules, $data, 'AND'); // true
$rules = [
new Rule('score', '>=', 60, 'Score is passing'),
new Rule('score', '<', 100, 'Score is not perfect'),
];
$data = ['score' => 85];
// AND: all rules must pass
Engine::evaluate($rules, $data, 'AND'); // true
// OR: at least one rule must pass
Engine::evaluate($rules, $data, 'OR'); // true
$rules = [
new Rule('age', '>=', 18, 'Age must be 18 or older'),
new Rule('vip', '==', true, 'Must be a VIP user'),
];
$data = ['age' => 20, 'vip' => false];
$details = Engine::evaluateWithDetails($rules, $data);
// [
// ['description' => 'Age must be 18 or older', 'passed' => true],
// ['description' => 'Must be a VIP user', 'passed' => false],
// ]
use Hejunjie\SimpleRuleEngine\RuleGroup;
$group = new RuleGroup([
new Rule('status', '==', 'active', 'Status is active'),
new Rule('level', '>=', 3, 'Level is 3 or above'),
], 'AND');
$data = ['status' => 'active', 'level' => 5];
$group->evaluate($data); // true
$group->evaluateWithDetails($data); // Returns detailed evaluation array
use Hejunjie\SimpleRuleEngine\Interface\OperatorInterface;
use Hejunjie\SimpleRuleEngine\OperatorFactory;
class ModOperator implements OperatorInterface
{
public function evaluate(mixed $fieldValue, mixed $ruleValue): bool
{
return $fieldValue % $ruleValue === 0;
}
public function name(): string
{
return 'mod';
}
}
// Register
OperatorFactory::getInstance()->register(new ModOperator());
// Use
$rule = new Rule('number', 'mod', 3, 'Number is divisible by 3');
$rule->evaluate(['number' => 9]); // true
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.