PHP code example of traderinteractive / filter
1. Go to this page and download the library: Download traderinteractive/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' );
traderinteractive / 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