gpt4 book ai didi

php - NetBeans 从包含的文件自动完成不起作用?

转载 作者:可可西里 更新时间:2023-10-31 22:10:20 25 4
gpt4 key购买 nike

我有一个名为 config.php 的文件,我还有其他文件包括 config.php。编辑其中一个文件时,我使用 config.php 中的一个对象,它会自动完成对象的名称。但是,当我尝试查看此对象的函数或变量时(使用 ->),没有自动完成。有什么办法让它发挥作用吗?

注意:我已经在对象定义之前将/* @var $myObject myType */添加到 config.php 中。我是否必须将该行添加到我的每个包含 config.php 的文件中?这似乎不对。

编辑:添加示例。

目录;

  • 配置.php
  • index.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 会根据此信息给出正确的提示。

关于php - NetBeans 从包含的文件自动完成不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10157133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com