Skip to content

Commit eb71cdd

Browse files
authored
Merge pull request #80 from chadicus/master
Add Filter Alias for Arrays::arrayize()
2 parents fad882b + aaec022 commit eb71cdd

4 files changed

Lines changed: 40 additions & 20 deletions

File tree

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,13 @@ The following does a strict check for `$value` against the 3 accepted values.
156156
\TraderInteractive\Filter\Arrays::in($value, ['a', 'b', 'c']);
157157
```
158158

159+
#### Arrays::arrayize
160+
Aliased in the filterer as `arrayize`, this filter returns this original input if it is an array, otherwise returns input wrapped in an array. If the original input is null, an empty array is returned.
161+
```php
162+
$value = \TraderInteractive\Filter\Arrays::arrayize('a string value');
163+
assert($value === ['a string value']);
164+
```
165+
159166
#### Arrays::filter
160167
Aliased in the filterer as `array`, this filter verifies that the argument is an array and checks the length of the array against bounds. The
161168
default bounds are 1+, so an empty array fails by default.

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
"license": "MIT",
3131
"require": {
3232
"php": "^7.0",
33-
"traderinteractive/filter-arrays": "^3.0",
33+
"traderinteractive/filter-arrays": "^3.1",
3434
"traderinteractive/filter-bools": "^3.0",
3535
"traderinteractive/filter-dates": "^3.0",
3636
"traderinteractive/filter-floats": "^3.0",

src/Filterer.php

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,26 @@ final class Filterer
1515
* @var array
1616
*/
1717
const DEFAULT_FILTER_ALIASES = [
18-
'in' => '\TraderInteractive\Filter\Arrays::in',
19-
'array' => '\TraderInteractive\Filter\Arrays::filter',
20-
'bool' => '\TraderInteractive\Filter\Booleans::filter',
21-
'float' => '\TraderInteractive\Filter\Floats::filter',
22-
'int' => '\TraderInteractive\Filter\Ints::filter',
23-
'bool-convert' => '\TraderInteractive\Filter\Booleans::convert',
24-
'uint' => '\TraderInteractive\Filter\UnsignedInt::filter',
25-
'string' => '\TraderInteractive\Filter\Strings::filter',
26-
'ofScalars' => '\TraderInteractive\Filterer::ofScalars',
27-
'ofArrays' => '\TraderInteractive\Filterer::ofArrays',
28-
'ofArray' => '\TraderInteractive\Filterer::ofArray',
29-
'url' => '\TraderInteractive\Filter\Url::filter',
30-
'email' => '\TraderInteractive\Filter\Email::filter',
31-
'explode' => '\TraderInteractive\Filter\Strings::explode',
32-
'strip-tags' => '\TraderInteractive\Filter\Strings::stripTags',
33-
'flatten' => '\TraderInteractive\Filter\Arrays::flatten',
34-
'date' => '\TraderInteractive\Filter\DateTime::filter',
35-
'date-format' => '\TraderInteractive\Filter\DateTime::format',
36-
'timezone' => '\TraderInteractive\Filter\DateTimeZone::filter',
18+
'array' => '\\TraderInteractive\\Filter\\Arrays::filter',
19+
'arrayize' => '\\TraderInteractive\\Filter\\Arrays::arrayize',
20+
'bool' => '\\TraderInteractive\\Filter\\Booleans::filter',
21+
'bool-convert' => '\\TraderInteractive\\Filter\\Booleans::convert',
22+
'date' => '\\TraderInteractive\\Filter\\DateTime::filter',
23+
'date-format' => '\\TraderInteractive\\Filter\\DateTime::format',
24+
'email' => '\\TraderInteractive\\Filter\\Email::filter',
25+
'explode' => '\\TraderInteractive\\Filter\\Strings::explode',
26+
'flatten' => '\\TraderInteractive\\Filter\\Arrays::flatten',
27+
'float' => '\\TraderInteractive\\Filter\\Floats::filter',
28+
'in' => '\\TraderInteractive\\Filter\\Arrays::in',
29+
'int' => '\\TraderInteractive\\Filter\\Ints::filter',
30+
'ofArray' => '\\TraderInteractive\\Filterer::ofArray',
31+
'ofArrays' => '\\TraderInteractive\\Filterer::ofArrays',
32+
'ofScalars' => '\\TraderInteractive\\Filterer::ofScalars',
33+
'string' => '\\TraderInteractive\\Filter\\Strings::filter',
34+
'strip-tags' => '\\TraderInteractive\\Filter\\Strings::stripTags',
35+
'timezone' => '\\TraderInteractive\\Filter\\DateTimeZone::filter',
36+
'uint' => '\\TraderInteractive\\Filter\\UnsignedInt::filter',
37+
'url' => '\\TraderInteractive\\Filter\\Url::filter',
3738
];
3839

3940
/**

tests/FiltererTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -647,4 +647,16 @@ public function ofArrayUnknown()
647647
$this->assertSame($expected, $e->getMessage());
648648
}
649649
}
650+
651+
/**
652+
* @tests
653+
* @covers ::filter
654+
*/
655+
public function arrayizeAliasIsCalledProperly()
656+
{
657+
$this->assertSame(
658+
[true, ['field' => ['a string value']], null, []],
659+
Filterer::filter(['field' => [['arrayize']]], ['field' => 'a string value'])
660+
);
661+
}
650662
}

0 commit comments

Comments
 (0)