【问题标题】:PHP hint dynamic return type (based on $class param)PHP 提示动态返回类型(基于 $class 参数)
【发布时间】: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


【解决方案1】:

试试DynamicReturnTypePlugin。那么你可以手动添加这个配置

【讨论】:

    猜你喜欢
    • 2016-12-23
    • 1970-01-01
    • 2021-11-10
    • 2020-05-02
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2019-12-19
    相关资源
    最近更新 更多