映射可调用对象的参数¶
该库可以映射可调用的参数;它可用于在调用函数/方法之前确保源具有正确的形状。
映射器构建器的配置方式与树映射器相同,例如自定义类型的严格性 。
$someFunction = function(string $foo, int $bar): string {
return "$foo / $bar";
}
try {
$arguments = (new \CuyZ\Valinor\MapperBuilder())
->argumentsMapper()
->mapArguments($someFunction, [
'foo' => 'some value',
'bar' => 42,
]);
// some value / 42
echo $someFunction(...$arguments);
} catch (\CuyZ\Valinor\Mapper\MappingError $error) {
// Do something…
}
任何可调用对象都可以提供给参数映射器:
final class SomeController
{
public static function someAction(string $foo, int $bar): string
{
return "$foo / $bar";
}
}
try {
$arguments = (new \CuyZ\Valinor\MapperBuilder())
->argumentsMapper()
->mapArguments(SomeController::someAction(...), [
'foo' => 'some value',
'bar' => 42,
]);
// some value / 42
echo SomeController::someAction(...$arguments);
} catch (\CuyZ\Valinor\Mapper\MappingError $error) {
// Do something…
}