PHP 提示动态返回类型(基于 $class 参数)
Posted
技术标签:
【中文标题】PHP 提示动态返回类型(基于 $class 参数)【英文标题】:PHP hint dynamic return type (based on $class param) 【发布时间】: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 关于返回类型,所以我可以使用自动完成,而不是添加任何验证。 是的,您可以这样做。问题在这里得到解答***.com/a/17671992/540001 【参考方案1】:试试DynamicReturnTypePlugin。那么你可以手动添加这个配置
【讨论】:
以上是关于PHP 提示动态返回类型(基于 $class 参数)的主要内容,如果未能解决你的问题,请参考以下文章