elepunk/evaluator

Laravel 包,用于 symfony 表达式语言组件

v1.0.1 2015-02-24 06:56 UTC

This package is not auto-updated.

Last update: 2024-09-24 02:47:28 UTC


README

Build Status Scrutinizer Code Quality Coverage Status Latest Stable Version Latest Unstable Version License SensioLabsInsight

A Laravel 包和 Orchestra 扩展,用于 symfony/expression-language 组件。

安装

简单更新 composer.json 文件并运行 composer install

"require": {
	"elepunk/evaluator": "1.0.*"
}

快速安装

composer require "elepunk/evaluator=1.0.*"

配置

如果你使用 Orchestra 平台,可以简单地启用扩展或添加服务提供者。这也会自动加载 Evaluator 别名。

'providers' => [
	'Elepunk\Evaluator\EvaluatorServiceProvider'
];

适配器

此包提供 Orchesta Memory 作为默认驱动。

如何使用

评估表达式

$test = [
    'foo' => 10,
    'bar' => 5
];

echo Evaluator::evaluate('foo > bar', $test); //this will return true

你也可以保存表达式规则。

$test = [
    'foo' => 10,
    'bar' => 5
];

Evaluator::expression()->add('test', 'foo > bar');

echo Evaluator::evaluateRule('test', $test); //this will return true

有关支持的表达式,请访问 Symfony Expression Language Component

条件

假设我们想要对我们的集合实施 10% 的税率。

$item = [
    'price' => 100
];

$condition = [
    'target' => 'price',
    'action' => '10%',
    'rule' => 'price > 50'
];

Evaluator::expression()->add('tax', $condition);

$calculated = Evaluator::condition('tax', $item);

带有乘数的项目。

$item = [
	'price' => 50,
	'quantity' => 2
];

$condition = [
    'target' => 'price',
    'action' => '10%',
    'rule' => 'price > 50',
    'multiplier' => 'quantity'
];

Evaluator::expression()->add('tax', $condition);

$calculated = Evaluator::condition('tax', $item);