1. Go to this page and download the library: Download stratadox/hydration-mapping 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/ */
stratadox / hydration-mapping example snippets
use Stratadox\Hydration\Mapping\Simple\Type\IntegerValue;
use Stratadox\Hydration\Mapping\Simple\Type\StringValue;
use Stratadox\Hydrator\MappedHydrator;
use Stratadox\Hydrator\ObjectHydrator;
$hydrator = MappedHydrator::using(
ObjectHydrator::default(),
StringValue::inProperty('title'),
IntegerValue::inProperty('rating'),
StringValue::inPropertyWithDifferentKey('isbn', 'id')
);
$book = new Book;
$hydrator->writeTo($book, [
'title' => 'This is a book.',
'rating' => 3,
'isbn' => '0000000001'
]);
use Stratadox\Deserializer\ObjectDeserializer;
use Stratadox\Hydration\Mapping\Simple\Type\IntegerValue;
use Stratadox\Hydration\Mapping\Simple\Type\StringValue;
use Stratadox\Hydrator\MappedHydrator;
use Stratadox\Hydrator\ObjectHydrator;
use Stratadox\Instantiator\ObjectInstantiator;
$deserialize = ObjectDeserializer::using(
ObjectInstantiator::forThe(Book::class),
MappedHydrator::using(
ObjectHydrator::default(),
StringValue::inProperty('title'),
IntegerValue::inProperty('rating'),
StringValue::inPropertyWithDifferentKey('isbn', 'id')
)
);
$book = $deserialize->from([
'title' => 'This is a book.',
'rating' => 3,
'isbn' => '0000000001'
]);
use Stratadox\Hydration\Mapping\Simple\Type\BooleanValue;
$myProperty = BooleanValue::withCustomTruths('foo', ['yes', 'y'], ['no', 'n']);
use Stratadox\Hydration\Mapping\Simple\Type\CanBeBoolean;
use Stratadox\Hydration\Mapping\Simple\Type\CanBeInteger;
use Stratadox\Hydration\Mapping\Simple\Type\CanBeFloat;
use Stratadox\Hydration\Mapping\Simple\Type\StringValue;
$theProperty = CanBeBoolean::orCustom(
CanBeInteger::or(
CanBeFloat::or(
StringValue::inProperty('bar')
)
), ['TRUE'], ['FALSE']
);
use Stratadox\Hydration\Mapping\Composite\ConstrainedMapping;
use Stratadox\Hydration\Mapping\Simple\Type\IntegerValue;
use Your\Constraint\IsNotLess;
use Your\Constraint\IsNotMore;
ConstrainedMapping::checkThatIt(
IsNotLess::than(1)->and(IsNotMore::than(5)),
IntegerValue::inProperty('rating')
);
use Stratadox\Specification\Specification;
class IsNotLess extends Specification
{
private $minimum;
private function __construct(int $minimum)
{
$this->minimum = $minimum;
}
public static function than(int $minimum): self
{
return new self($minimum);
}
public function isSatisfiedBy($number): bool
{
return $number >= $this->minimum;
}
}
use Stratadox\Specification\Contract\Specifies;
use Stratadox\Specification\Specifying;
class IsNotMore implements Specifies
{
use Specifying;
private $maximum;
private function __construct(int $maximum)
{
$this->maximum = $maximum;
}
public static function than(int $maximum): self
{
return new self($maximum);
}
public function isSatisfiedBy($number): bool
{
return $number <= $this->maximum;
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.