Skip to content

Commit fbf303b

Browse files
committed
В фильтрах добавлена поддержка оператора in
1 parent 33d98cb commit fbf303b

File tree

4 files changed

+19
-2
lines changed

4 files changed

+19
-2
lines changed

Diff for: Enum.php

+4
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,10 @@ public static function toArray(array $filter = [])
129129
return false;
130130
}
131131
break;
132+
133+
case 'in':
134+
return in_array($item[$key], $value, true);
135+
break;
132136
}
133137
} else {
134138
$value = $filterItem;

Diff for: README.md

+11-1
Original file line numberDiff line numberDiff line change
@@ -164,8 +164,18 @@ Status::isValid('publish', [['<', 'priority', 5]]); // false
164164
]
165165
```
166166

167-
Поддерживаемые операторы: `=`, `!=`, `>`, `<`, `>=`, `<=`.
167+
Поддерживаемые операторы: `=`, `!=`, `>`, `<`, `>=`, `<=`, `in`.
168168

169+
### Оператор `in`
170+
171+
Проверяет, что значение соответствует одному из значений, указанных в массиве `$value`. Например:
172+
173+
```php
174+
[
175+
Status::isValid('publish', [['in', 'priority', [5, 10]]]);
176+
Status::isValid('closed', [['in', 'value', ['publish', 'closed', 'draft']]]);
177+
]
178+
```
169179

170180
## <a name="getters"></a>Геттеры
171181

Diff for: composer.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "vjik/php-enum",
33
"description": "PHP 5.4+ Enum implementation",
4-
"version": "1.1.1",
4+
"version": "1.2.0",
55
"type": "library",
66
"keywords": [
77
"php",

Diff for: tests/WithDataTest.php

+3
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,9 @@ public function filterProvider()
149149
[[['>=', 'number', 101], ['<', 'number', 103]], [1, 2, 10]],
150150
[['number' => 101, 'value' => 1], [1]],
151151
[['number' => 13], []],
152+
[[['in', 'number', [101, 102]]], [1, 2, 10]],
153+
[[['in', 'value', [2, 3]]], [2, 3]],
154+
[[['in', 'number', [1, 2]]], []],
152155
];
153156
}
154157

0 commit comments

Comments
 (0)