luckyteam / arraydb-condition
dev-master
2017-03-26 15:16 UTC
Requires (Dev)
- codeception/codeception: ^2.2
- phpunit/phpunit: ^4.8
This package is auto-updated.
Last update: 2025-04-29 00:43:16 UTC
README
Condition - компонент приложения позволяет в удобной форме оформить условие в коде программы и выполнить его.
Как использовать?
Получить любым удобным способом строитель условий (ConditionBuilder). Передать на вход метода ConditionBuilder::build() нотацию и получить экземпляр условия. Воспользоваться экземпляром условия там где требуется его проверка.
$builder = new ConditionBuilder(); $condition = $builder->build($notation); $condition->execute($model);
Какие условия можно создавать?
- Условие сравнения
- Условие на основе функции обратного вызова
- Хеш условие
- In
- Not
- Between
- Like
- And
- Or
Условие сравнения
/** @var ConditionBuilder $builder */ $condition = $builder->build([ '>', 'attribute1', 1 ]); $condition->execute($model);
Операторы сравнения
"equal", "=", "not equal", "!=", "more", ">", "more or equal", ">=", "less", "<", "less or equal", "<=".
Условие на основе функции обратного вызова
/** @var ConditionBuilder $builder */ $condition = $builder->build(function($model){ return $model->discount > (($model->price + $model->discount) * 0,5); }); $condition->execute($model);
Хеш условие
/** @var ConditionBuilder $builder */ $condition = $builder->build([ 'attribute1' => ['Foo', 'Bzz'], // На основании этого элемента будет построено IN - условие 'attribute2' => 'value2' ]); $condition->execute($model);
IN условие
/** @var ConditionBuilder $builder */ // Формат для записи условия избранный первоначально $condition = $builder->build([ 'in', [ 'attribute' => ['Foo', 'Bzz'] ], ]); // Формат реализованный для соответсвия Yii2 $condition = $builder->build([ 'in', 'attribute', ['Foo', 'Bzz'] ]); $condition->execute($model);
NOT условие
/** @var ConditionBuilder $builder */ $condition = $builder->build([ 'not', [ '>=', 'attribute1' , 100 ] ]); $condition->execute($model);
BETWEEN условие
/** @var ConditionBuilder $builder */ // Формат для записи условия избранный первоначально $condition = $builder->build([ 'between', [ 'attribute' => [1, 10] ], ]); // Формат реализованный для соответсвия Yii2 $condition = $builder->build([ 'between', [ 'attribute' => [1, 10] ], ]); $condition->execute($model);
LIKE условие
/** @var ConditionBuilder $builder */ // Формат для записи условия избранный первоначально $condition = $builder->build([ 'like', [ 'attribute' => "/F.o/" ], ]); // Формат реализованный для соответсвия Yii2 $condition = $builder->build([ 'like', 'attribute', "/F.o/" ]); $condition->execute($model);
AND условие
/** @var ConditionBuilder $builder */ $condition = $builder->build([ 'and', [ '>=', 'attribute1' , 1 ], [ 'attribute2' => 'value2' ] ]); $condition->execute($model);
OR условие
/** @var ConditionBuilder $builder */ $condition = $builder->build([ 'or', [ '>=', 'attribute1' , 1 ], [ 'attribute2' => 'value2' ] ]); $condition->execute($model);