我找到了一种方式来说netbeans类型的变量:
/* @var $variablename Type */
Run Code Online (Sandbox Code Playgroud)
但是在这种情况下没有提示(数据库是我的类):
//model.php
abstract class Model {
/* @var $db Database */
protected $db;
(...)
}
//Mymodel.php
class MyModel extends Model {
(...)
$this->db-> //no hints
(...)
}
Run Code Online (Sandbox Code Playgroud)
是Netbeans限制还是我的错?
NetBeans可以使用两个相似但不同的注释注释:
好的旧的phpdoc块注释,从/**项目定义开始并放置在项目定义之前:
/**
* @var Database $db Database connection instance
*/
protected $db;
Run Code Online (Sandbox Code Playgroud)变量类型内联注释,/*以项目使用之前的某个位置开头并放置在某个位置:
$foo = $this->db;
/* @var $foo Database*/
$foo->...
Run Code Online (Sandbox Code Playgroud)当docblock注释不可用或无用时,第二种类型会派上用场,例如,您使用的是未记录的第三方库,或者无法自动跟踪您的变量类型.
您基本上在#1的上下文中使用#2的语法;-)
首先,先定义变量类型,如下所示:
/* @var Database $db This is my Database object */
Run Code Online (Sandbox Code Playgroud)
其次我建议使用 phpdoc 注释,例如:
class Model {
/**
* @var Database $db This is my Database object
*/
protected $db;
Run Code Online (Sandbox Code Playgroud)
那么应该就没有什么问题了...