【问题标题】:PHPDoc @var singleton (PhpStorm)PHPDoc @var 单例 (PhpStorm)
【发布时间】:2017-07-10 18:17:09
【问题描述】:

我的PhpStorm直接调用时找不到单例类的方法。

这行得通:

$db = Database::getInstance();
/** @var Database $db */
$this->db = $db->getDatabase(IMS_DB);

这不是

/** @var Database Database::getInstance */
$this->db = Database::getInstance()->getDatabase(IMS_DB);

它说找不到方法getDatabase

有什么想法吗?

【问题讨论】:

  • 您好,欢迎来到 Stack Overflow,请花点时间通过 welcome tour 了解您在此处的方式(并获得您的第一个徽章),阅读如何创建 Minimal, Complete, and Verifiable example并检查How to Ask Good Questions,这样您就有机会获得反馈和有用的答案。
  • 请举一个更详细的例子来详细说明,并准确描述您采取的步骤以及没有按预期工作的步骤。
  • "Any Ideas?" 是的——你上次的 PHPDoc 是错误的——它不是那样工作的。您不能以这种方式在另一个类中键入一些方法。像这样的类型提示适用于局部变量(比如首先,您输入提示$db 变量)。如果您需要 Database::getInstance() 的 typehint 返回类型,则必须在 Database 类中完成。
  • 您的权利。 @LazyOne 我在数据库类中犯了一个错误。在那里设置正确的返回类型可以解决问题。谢谢

标签: php singleton phpstorm phpdoc


【解决方案1】:

您需要告诉您的 IDE getInstance() 实际返回什么,因此您需要将 phpDoc 添加到 Database::getInstance()

class Database

/**
* @return self
*/
public static function getInstance(){
    //code...
}

【讨论】:

    猜你喜欢
    • 2016-07-13
    • 1970-01-01
    • 2023-03-26
    • 2011-12-05
    • 2016-09-27
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 2015-12-13
    相关资源
    最近更新 更多