1. Go to this page and download the library: Download philiagus/parser 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/ */
philiagus / parser example snippets
use Philiagus\Parser\Base\Subject;
use Philiagus\Parser\Parser\Assert\AssertInteger;
$integer = 100;
$parsingResult = AssertInteger::range(0, 100)
->parse(Subject::default($integer))
->getValue();
// or, also possible:
AssertInteger::range(0, 100)
->thenAssignTo($target)
->parse(Subject::default($integer))
->getValue();
use Philiagus\Parser\Base\Subject;
use Philiagus\Parser\Parser\Assert\AssertFloat;
use Philiagus\Parser\Parser\Assert\AssertInteger;
use Philiagus\Parser\Parser\Logic\OneOf;
use Philiagus\Parser\Parser\Parse\ParseArray;
$input = [
1, 1.0, 2, 4, 4.20
];
$integers = [];
$floats = [];
ParseArray::new()
->assertSequentialKeys()
->giveEachValue(
OneOf::new()
->parser(
AssertInteger::minimum(0)
->thenAppendTo($integers),
AssertFloat::minimum(0.0)
->thenAppendTo($floats)
)
)
->parse(Subject::default($input));
// $integers will contain [1, 2, 4]
// $floats will contain [1.0, 4.20]
use Philiagus\Parser\Base\Subject;
use Philiagus\Parser\Parser\Assert\AssertInteger;
use Philiagus\Parser\Parser\Assert\AssertStdClass;
use Philiagus\Parser\Parser\Assert\AssertStringMultibyte;
use Philiagus\Parser\Parser\Convert\ConvertToDateTime;
use Philiagus\Parser\Parser\Parse\ParseJSONString;
$sourceValue = '{"name":"Frank Herbert","birthday":"1920-10-08"}';
$parser = ParseJSONString::new()
->then(
AssertStdClass::new()
->givePropertyValue(
'name',
AssertStringMultibyte::UTF8()
->giveLength(
AssertInteger::new()
->assertMinimum(1)
->assertMaximum(64)
)
->thenAssignTo($name)
)
->givePropertyValue(
'birthday',
ConvertToDateTime::fromSourceFormat(
'!Y-m-d', new \DateTimeZone('UTC'),
'The provided birthday is not a valid date'
)
->setTimezone(new \DateTimeZone('UTC'))
->thenAssignTo($birthday)
)
);
$result = $parser->parse(Subject::default($sourceValue, 'Input', false));
if ($result->hasErrors()) {
foreach ($result->getErrors() as $error) {
echo $error->getPathAsString(), ': ', $error->getMessage(), PHP_EOL;
}
exit;
}
$today = new \DateTime();
$delta = $today->diff($birthday);
if ($today < $birthday) {
echo "$name will be born in ", $delta->y, " years", PHP_EOL;
} else {
echo "$name was born ", $delta->y, " years ago", PHP_EOL;
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.