Возможно ли, что вы намекаете на возвращаемый тип функции/метода PHP, определяемый одним из аргументов? Что-то вроде этого:
/**
* @param string $class
* @param array $attributes
* @return $class <- this doesn't work
*/
public function create($class, $attributes) {
... // finally returns object of type $class
}
Я реализую библиотеку, которая позволяет создавать фабричные объекты для модульных тестов. Поэтому я хочу сделать возможным в клиентском коде:
$user = $factory->create('Users', ['name' => 'John', 'email' => '[email protected]']);
И иметь автозаполнение методов/атрибутов объекта без необходимости добавлять явные комментарии PHPDoc в клиентский код, например:
/* @var $user Users */
$user = $factory->create('Users', ['name' => 'John', 'email' => '[email protected]']);
Любые предложения приветствуются! Пока я работаю в популярных IDE (PHPStorm, Eclipse, NetBeans), это правильное решение.