Я создал метод для динамического прохождения методов объекта и создания массива с анонимными функциями, которые будут вести себя как фабрики.
У меня проблема с тем, как динамически объявить тип возврата анонимной функции.Я не смог найти правильный синтаксис, и я не уверен, что это вообще возможно в PHP.
Я хотел бы создать что-то подобное в упрощенной версии:
$services = [];
$object_class = get_class($object);
$method_names = get_class_methods($object_class);
// go through all object methods
foreach ($method_names as $method_name) {
// get return type of this method
$method = new ReflectionMethod($object_class, $method_name);
$type = $method->getReturnType();
// use it as return type for this anonymous function (not working)
$services[$method_name] = function() use ($object, $method_name): $type {
return call_user_func([$object, $method_name]);
};
}
Но яполучаю синтаксическую ошибку здесь.