未知函数在PHP Netbeans -如何抑制


Unknown function in PHP Netbeans - how to suppress?

由于我在localhost上开发但部署在其他地方,并且由于我不想强迫我的站点位于Windows分区的根目录下(目前为F:'web_dev'htdocs),代码如下:

require_once($_SERVER['DOCUMENT_ROOT'] . '/projXY/database/database_common.php');
OdbcExec($sql); // defined in the file above

导致Netbeans发出"Warning: unknown function"。

现在,我可以通过使用如下目录结构来绕过这个问题:
F:'project_1  
F:'project_2  

代替

F:'web_dev_htdocs'project_1  
F:'web_dev_htdocs'project_2  

,然后使用

require_once('/database/database_common.php');

BUT对最终用户安装我的站点的位置施加限制。

到目前为止最简单的是告诉NetBeans哪个本地目录对应于$_SERVER['DOCUMENT_ROOT'],但我找不到配置选项。我相信这是一个普遍的问题。有什么建议吗?


更新:NetbBeans v7.0.1

只需将/path/to/projXY/database/目录添加到项目的包含路径中。然后Netbeans将在那里拾取文件并将它们用作代码引用。

http://netbeans.org/kb/docs/php/project-setup.html phpIncludePath

附录

依靠$_SERVER['DOCUMENT_ROOT']通常是一个坏主意。首先,它消除了通过控制台/命令行运行部分应用程序的能力。

你应该使用可配置的绝对路径来共享库,或者像Brandon的回答那样,使用__DIR__ (PHP 5.3)或dirname(__FILE__)的相对路径

不确定这是否是您正在寻找的,但我通常使用:

 require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'file.php');