PHP code example of dominionenterprises / filter
1. Go to this page and download the library: Download dominionenterprises/filter 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/ */
dominionenterprises / filter example snippets
class AppendFilter
{
public function filter($value, $extraArg)
{
return $value . $extraArg;
}
}
$appendFilter = new AppendFilter();
$trimFunc = function($val) { return trim($val); };
list($status, $result, $error, $unknowns) = TraderInteractive\Filterer::filter(
[
'field one' => [[$trimFunc], ['substr', 0, 3], [[$appendFilter, 'filter'], 'boo']],
'field two' => ['
bool(true)
array(3) {
'field one' =>
string(6) "abcboo"
'field two' =>
double(3.14)
'field four' =>
int(1)
}
NULL
array(0) {
}
TraderInteractive\FiltererOptions::ALLOW_UNKNOWNS
$options = [
TraderInteractive\FiltererOptions::ALLOW_UNKNOWNS => true,
];
$filterer = new TraderInteractive\Filterer($specification, $options);
TraderInteractive\FiltererOptions::DEFAULT_REQUIRED
$options = [
TraderInteractive\FiltererOptions::DEFAULT_REQUIRED => true,
];
$filterer = new TraderInteractive\Filterer($specification, $options);
TraderInteractive\FiltererOptions::RESPONSE_TYPE
$options = [
TraderInteractive\FiltererOptions::RESPONSE_TYPE => \TraderInteractive\FilterResponse::class,
];
$filterer = new TraderInteractive\Filterer($specification, $options);
TraderInteractive\FilterOptions::IS_REQUIRED
$specificaton = [
'id' => [TraderInteractive\FilterOptions::IS_REQUIRED => true, ['uint']],
];
TraderInteractive\FilterOptions::DEFAULT_VALUE
$specificaton = [
'subscribe' => [TraderInteractive\FilterOptions::DEFAULT_VALUE => true, ['bool']],
'status' => [TraderInteractive\FilterOptions::DEFAULT_VALUE => 'A', ['string', false, 1, 1]],
];
TraderInteractive\FilterOptions::CUSTOM_ERROR
$specificaton = [
'price' => [
TraderInteractive\FilterOptions::CUSTOM_ERROR => 'Price {value} was not between 0 and 100',
['uint', false, 0, 100],
],
];
TraderInteractive\FilterOptions::CONFLICTS_WITH
$specification = [
'id' => [
TraderInteractive\FilterOptions::CONFLICTS_WITH => 'code',
[['uint']],
],
'code' => [
TraderInteractive\FilterOptions::CONFLICTS_WITH => 'id',
[['string']],
],
];
TraderInteractive\FilterOptions::USES
$specification = [
'base' => [
[['float']],
],
'exponent' => [
['uint'],
[
TraderInteractive\FilterOptions::USES => 'base',
'pow',
],
],
];
TraderInteractive\FilterOptions::THROW_ON_ERROR
$idFilter = function ($id) : int {
if (!is_int($id)) {
throw new NotFoundException("id '{$id}' was not found");
}
return $id;
};
$specification = [
'id' => [
\TraderInteractive\FilterOptions::THROW_ON_ERROR => true,
[$idFilter],
],
];
TraderInteractive\FilterOptions::RETURN_ON_NULL
$validCodes = ['A', 'I', 'X'];
$specification = [
'code' => [
\TraderInteractive\FilterOptions::RETURN_ON_NULL => true,
['string', true],
['strtoupper'],
['in', $validCodes],
],
];
$value = \TraderInteractive\Filter\Filterer::ofScalars($value, [['uint']]);
$value = \TraderInteractive\Filter\Filterer::ofArrays($value, ['id' => [['uint']]]);
$specification = ['field' => [['array-copy', ['FOO_VALUE' => 'foo', 'BAR_VALUE' => 'bar']]]];
$filterer = new TraderInteractive\Filterer($specification);
$input = ['foo' => 123, 'bar' => 'abc'];
$result = $filterer->execute($input);
assert(['field' => ['FOO_VALUE' => 123, 'BAR_VALUE' => 'abc']], $result->filteredValue);
$specification = ['field' => [['array-copy-each', ['FOO_VALUE' => 'foo', 'BAR_VALUE' => 'bar']]]];
$filterer = new TraderInteractive\Filterer($specification);
$input = [
['foo' => 123, 'bar' => 'abc'],
['foo' => 456, 'bar' => 'def'],
];
$result = $filterer->execute($input);
assert(['field' => [['FOO_VALUE' => 123, 'BAR_VALUE' => 'abc'], ['FOO_VALUE' => 456, 'BAR_VALUE' => 'def']]], $result->filteredValue);
$sepcification = ['field' => [['array'],['implode', ',']]];
$filterer = new TraderInteractive\Filterer($specification);
$input = [
'field' => ['lastname', 'email', 'phone'],
];
$result = $filterer->execute($input);
assert(['field' => 'lastname,email,phone'], $result->filteredValue);
\TraderInteractive\Filter\Arrays::in($value, ['a', 'b', 'c']);
$value = \TraderInteractive\Filter\Arrays::arrayize('a string value');
assert($value === ['a string value']);
\TraderInteractive\Filter\Arrays::filter($value, 3, 3);
$value = \TraderInteractive\Filter\Arrays::flatten([[1, 2], [3, [4, 5]]]);
assert($value === [1, 2, 3, 4, 5]);
$specification = ['field' => [['array-pad', 5, 0, Arrays::ARRAY_PAD_LEFT]]],
$filterer = new TraderInteractive\Filterer($specification);
$input = [2, 4, 6];
$result = $filterer->execute($input);
assert(['field' => [0, 0, 2, 4, 6]], $result->filteredValue);
$enabled = \TraderInteractive\Filter\Booleans::filter($value, false, ['on'], ['off']);
$answer = \TraderInteractive\Filter\Booleans::convert($value, 'yes', 'no');
$value = \TraderInteractive\Filter\UnsignedInt::filter($value, false, 1, 100);
\TraderInteractive\Filter\Strings::filter($value);
$value = \TraderInteractive\Filter\Strings::concat('middle', 'begining_', '_end');
assert($value === 'begining_middle_end');
$value = \TraderInteractive\Filter\Strings::explode('abc,def,ghi');
assert($value === ['abc', 'def', 'ghi']);
$value = \TraderInteractive\Filter\Strings::stripTags('A string with <p>tags</p>');
assert($value === 'a string with tags');
$value = \TraderInteractive\Filter\Strings::tranlsate('bar', ['foo' => 'translated to bar', 'bar' => 'translated to foo']);
assert($value === 'translated to foo');
\TraderInteractive\Filter\Url::filter($value);
$closureMethod = function () {
doSomething();
};
\TraderInteractive\Filter\Closures::filter($closureMethod);
\TraderInteractive\Filter\Email::filter($value);
$dateTime = \TraderInteractive\Filter\DateTime::filter('2014-02-04T11:55:00-0500');
$formatted = \TraderInteractive\Filter\DateTime::format($value, 'Y-m-d H:i:s');
$timezone = \TraderInteractive\Filter\DateTimeZone::filter('America/New_York');
$value = \TraderInteractive\Filter\Json::validate('{"foo": "bar"}');
$value = \TraderInteractive\Filter\Json::parse('{"foo": "bar"}');
assert($value === ['foo' => 'bar']);
$value = \TraderInteractive\Filter\PhoneFilter::filter('234.567.8901', false, '({area}) {exchange}-{station}');
assert($value === '(234) 567-8901');
$value = \TraderInteractive\Filter\TimeOfDayFilter::filter('12:15:23');
assert($value === '12:15:23');
$value = \TraderInteractive\Filter\UuidFilter::filter('2c02b87a-97ec-4de0-8c50-6721a29c150f', false, false, [4]);
assert($value === '2c02b87a-97ec-4de0-8c50-6721a29c150f');
$value = <<<XML
<?xml version="1.0"
$value = <<<XML
<?xml version="1.0"
$value = <<<XML
<?xml version="1.0"
bash
./build.php