Go to file
Eduardo Dobay c009ab98cc
fix: properly handle static anonymous functions
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}`.
2022-09-24 20:01:53 +02:00
.github qa: improve cache and performances of Github actions 2022-08-31 09:36:22 +02:00
docs release: version 0.14.0 2022-09-01 12:51:11 +02:00
qa feat: allow injecting a cache implementation that is used by the mapper 2022-05-23 20:28:02 +02:00
src fix: properly handle static anonymous functions 2022-09-24 20:01:53 +02:00
tests fix: properly handle static anonymous functions 2022-09-24 20:01:53 +02:00
.changelog release: version 0.10.0 2022-06-10 19:00:31 +02:00
.gitattributes qa: include and use Rector 2022-05-21 16:37:16 +02:00
.gitignore misc: ignore .idea folder 2022-07-05 23:12:51 +02:00
.php-cs-fixer.dist.php feat!: allow mapping to any type 2022-01-02 00:48:01 +01:00
composer.json doc: introduce mkdocs as a static documentation generator 2022-06-10 17:32:07 +02:00
composer.lock qa: include and use Rector 2022-05-21 16:37:16 +02:00
infection.json.dist feat!: improve message customization with formatters 2022-05-21 16:30:24 +02:00
LICENSE.md misc!: change license from GPL 3 to MIT 2021-11-30 13:01:20 +01:00
phpstan.neon.dist feat: allow injecting a cache implementation that is used by the mapper 2022-05-23 20:28:02 +02:00
phpunit.xml.dist feat: initial release 2021-11-28 18:21:56 +01:00
psalm.xml qa: change Psalm cache directory 2022-08-30 20:55:20 +02:00
README.md doc: format badges in readme file 2022-06-12 17:59:12 +02:00
rector.php qa: improve cache and performances of Github actions 2022-08-31 09:36:22 +02:00

Valinor • PHP object mapper with strong type support

Latest Stable Version PHP Version Require Total Downloads Mutation testing badge


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-logo Blackfire for providing a license of their awesome tool, leading to notable performance gains when using this library.