mirror of
https://github.com/danog/Valinor.git
synced 2024-11-26 20:24:40 +01:00
c009ab98cc
The `MethodObjectBuilder` was incorrectly used when a registered constructor is a static anonymous functions — it was handled like a static method closure `Class::method(...)` and would yield errors like this: ``` Error: Call to undefined method stdClass::CuyZ\Valinor\Tests\Integration\Mapping\{closure}() ``` PHP Reflection does not provide any way of telling static functions and closures of static methods apart, other than checking for the name `{closure}`. We check that `{closure}` is actually the last part of the fully-qualified name, instead of just checking that the string ends with `{closure}`. |
||
---|---|---|
.github | ||
docs | ||
qa | ||
src | ||
tests | ||
.changelog | ||
.gitattributes | ||
.gitignore | ||
.php-cs-fixer.dist.php | ||
composer.json | ||
composer.lock | ||
infection.json.dist | ||
LICENSE.md | ||
phpstan.neon.dist | ||
phpunit.xml.dist | ||
psalm.xml | ||
README.md | ||
rector.php |
Valinor • PHP object mapper with strong type support
Valinor is a PHP library that helps to map any input into a strongly-typed value object structure.
The conversion can handle native PHP types as well as other well-known advanced type annotations like array shapes, generics and more.
Installation
composer require cuyz/valinor
Documentation
Documentation can be found at valinor.cuyz.io.
Credits & thank you
The development of this library is mainly motivated by the kind words and the help of many people. I am grateful to everyone, especially to the contributors of this repository who directly help to push the project forward.
I also want to thank Blackfire for providing a license of their awesome tool, leading to notable performance gains when using this library.