【问题标题】:PHP docBlock @return classNamePHP docBlock @return 类名
【发布时间】:2012-04-02 20:26:54
【问题描述】:

如何创建一个 PHP DocBlock 声明一个 @return 声明一个类的返回。目前这很简单

/**
* This returns an object of the "User" class
* @return User
*/
public function getUser() { return $this->user; }

我使用它通过我的 IDE 获取这些返回值的智能感知。 (在我的例子中是 Netbeans)

但是,我有一个基于变量名返回类的类。 (例如:)

/**
* This returns an object of the $param
* @param String $className
* @return ???
*/
public function getSomeObject($className) { return new $className(); }

我也在尝试为此创建智能感知,但我不确定这是否真的可行。

例如当我打电话时

$someClass = new MyClass();
$var = $someClass->getSomeObject('Address');

我希望我的 IDE 向我展示变量 $var(它将包含一个地址对象)的智能感知

【问题讨论】:

  • 什么是智能感知?它显示什么以及您希望它显示什么?
  • Intelissense 是 IDE 显示自动完成和有关某些函数、类等的更多信息的可能性。!Screenshot
  • 您应该指定它是什么 IDE,并相应地标记,希望得到答案。但似乎不可能知道在没有实际评估“地址”的情况下将返回地址......所以如果有一个功能,它是 IDE 特定的,而不是 phpdoc 相关的。

标签: php netbeans phpdoc


【解决方案1】:

提到该方法返回一个对象是有道理的:

/**
* [...]
* @return object
*/

最后还有一些细节:

* @return object Object of class $className

请参阅docs for @return

【讨论】:

  • 或者更具体地说是特定超类的子类,即:@return Person,它实际上将返回 EmployeeMusicianSportsman,类扩展(继承)Person
  • 谢谢。但是,一旦我使用该方法的结果,我现在正在尝试获取 $className 的智能感知。 (我修改了我的问题以澄清)
【解决方案2】:

除非您可以列出所有潜在的返回类型,

@return User|Address|Sandwich|Coiture

IDE 能够允许自动完成以聚合 所有来自的方法/属性整个类列表,那么我看不到它。

【讨论】:

    猜你喜欢
    • 2021-09-14
    • 1970-01-01
    • 2022-01-14
    • 2015-04-16
    • 2016-09-07
    • 1970-01-01
    • 1970-01-01
    • 2014-05-22
    • 2012-07-29
    相关资源
    最近更新 更多