【发布时间】:2015-03-05 01:46:20
【问题描述】:
您是否有可能暗示 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' => 'john@example.com']);
并且可以自动完成对象方法/属性,而无需在客户端代码中添加显式 PHPDoc cmets,如下所示:
/* @var $user Users */
$user = $factory->create('Users', ['name' => 'John', 'email' => 'john@example.com']);
欢迎提出任何建议!只要我让它在流行的 IDE(PHPStorm、Eclipse、NetBeans)中工作,它就是一个有效的解决方案。
【问题讨论】:
-
不——我看不出有任何理由这样做。 PHPDoc/typehints 旨在为代码添加严格的界限。也就是说 - 方法或函数应该只有一个返回类型(最多是那个返回类型或 null),因为它是一段独立的代码,它对上下文一无所知,它将在其中使用
-
我想提示 IDE 关于返回类型,所以我可以使用自动完成,而不是添加任何验证。
-
是的,您可以这样做。问题在这里得到解答stackoverflow.com/a/17671992/540001
标签: php autocomplete type-hinting