PHPDoc - 类型提示变量以查看静态方法
PHPDoc - typehint a variable to see static methods
我有这个代码:
$sSomeClass = 'Database';
$pdo = $sSomeClass::getInstance();
有什么方法可以在 PHPDoc 中输入提示,变量“$sSomeClass”是一个 class 名称,所以 IDE 可以看到对那个 class 的引用?
嗯...
<?php
/**
*
* @var Database $sSomeClass
*/
但我假设 $sSomeClass
不是如图所示的直接分配?那样的话……可能吧? IDE 无法确定它,也许可以确定花括号内提示的范围。将取决于 IDE.
if ($foo == 'bar') {
/**
*
* @var Bar $sSomeClass
*/
$sSomeClass = 'Bar';
} else {
/**
*
* @var Foo $sSomeClass
*/
$sSomeClass = 'Foo';
}
如果难以记住方法,我会在编码时添加类似 C 风格注释的块,然后简单地删除它。
在 Eclipse 中你可以这样做(我不知道其他 IDE 的):
/* @var $sSomeClass SomeClass */
$sSomeClass = 'Database';
$pdo = $sSomeClass::getInstance();
这对局部变量非常有效,例如循环对象数组。
/* @var $someClass SomeClass */
foreach($objects as $someClass){
$someClass->getSomething();
}
至少这是我使用它的典型方式。
如果您计划对多个 class 使用相同的变量,一种方法是为它们创建一个接口。也就是说,如果它们是可互换的,然后使用接口而不是 class 名称。问题中不清楚你到底需要什么。
我有这个代码:
$sSomeClass = 'Database';
$pdo = $sSomeClass::getInstance();
有什么方法可以在 PHPDoc 中输入提示,变量“$sSomeClass”是一个 class 名称,所以 IDE 可以看到对那个 class 的引用?
嗯...
<?php
/**
*
* @var Database $sSomeClass
*/
但我假设 $sSomeClass
不是如图所示的直接分配?那样的话……可能吧? IDE 无法确定它,也许可以确定花括号内提示的范围。将取决于 IDE.
if ($foo == 'bar') {
/**
*
* @var Bar $sSomeClass
*/
$sSomeClass = 'Bar';
} else {
/**
*
* @var Foo $sSomeClass
*/
$sSomeClass = 'Foo';
}
如果难以记住方法,我会在编码时添加类似 C 风格注释的块,然后简单地删除它。
在 Eclipse 中你可以这样做(我不知道其他 IDE 的):
/* @var $sSomeClass SomeClass */
$sSomeClass = 'Database';
$pdo = $sSomeClass::getInstance();
这对局部变量非常有效,例如循环对象数组。
/* @var $someClass SomeClass */
foreach($objects as $someClass){
$someClass->getSomething();
}
至少这是我使用它的典型方式。
如果您计划对多个 class 使用相同的变量,一种方法是为它们创建一个接口。也就是说,如果它们是可互换的,然后使用接口而不是 class 名称。问题中不清楚你到底需要什么。