我有一个名为 config.php 的文件,还有其他文件包括 config.php。编辑其中一个文件时,我使用 config.php 中的一个对象,它会自动补全该对象的名称。但是,当我尝试查看该对象的函数或变量(使用 -> )时,没有自动完成。有什么办法让它发挥作用吗?
注意:我已经在对象定义之前将 /* @var $myObject myType */ 添加到 config.php 中。我是否必须将该行添加到包含 config.php 的每个文件中?这似乎不对。
编辑:添加示例。
目录;
- 配置文件
- 索引.php
- lib/test.class.php
配置.php;
<?php
define('ABSPATH', dirname(__FILE__));
include_once ABSPATH.'/lib/test.class.php';
/* @var $TestObj test */
$TestObj = new test();
// auto complete works here.
$TestObj->someFunction();
?>
索引.php;
<?php
include_once 'config.php';
// here, auto completes object name
// not lists functions or variables after ->
$TestObj->someFunction();
?>
lib/test.class.php;
<?php
class test {
public $var1;
public function someFunction() {
echo 'I am some function.';
return 0;
}
}
?>
当我将 /* @var $TestObj test */ 添加到 index.php 时它正在工作,但我会有很多这样的文件,并且必须有比将该行添加到所有文件更好的方法。
确保项目的所有文件都位于项目的包含路径中(右键单击项目 -> 属性 -> 包含路径)。通常只有“全局包含路径”,您可以在 NetBeans 设置中配置该路径(例如,指向您的 PEAR 目录)。将包含您想要自动完成的源代码的所有目录添加到此包含路径。提示:此包含路径与 PHP 本身使用的 include_path 无关。
另外,不要在客户端代码中使用提示:
/* @var $TestObj test */
$TestObj->...
您应该为来源提供更多 apidoc,例如:
<?php
class test {
/**
* @var SomeClass
*/
public $var1;
/**
* @return int
*/
public function someFunction() {
echo 'I am some function.';
return 0;
}
}
由于 PHP 的动态特性,IDE 会根据此信息给出正确的提示。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)