Неизвестная функция в PHP Netbeans - как подавить? - PullRequest
2 голосов
/ 16 августа 2011

Поскольку я разрабатываю на localhost, но развертываю в другом месте, и поскольку я не хочу, чтобы мои сайты находились в корневом каталоге раздела Windows (в настоящее время F: \ web_dev \ htdocs), код наподобие этого:

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

заставляет Netbeans выдавать «Предупреждение: неизвестная функция».

Теперь я могу обойти это, используя вместо этого структуру каталогов:

F:\project_1  
F:\project_2  

из

F:\web_dev_htdocs\project_1  
F:\web_dev_htdocs\project_2  

, а затем с использованием

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

НО , что накладывает ограничения на то, где конечный пользователь устанавливает мой сайт.

Самым простым было бы сказать NetBeans, какой локальный каталог соответствует $_SERVER['DOCUMENT_ROOT'], но я не могу найти вариант конфигурации для этого.Я уверен, что это общая проблема.Есть предложения?


Обновление: NetbBeans v7.0.1

Ответы [ 2 ]

3 голосов
/ 16 августа 2011

Просто добавьте каталог /path/to/projXY/database/ в путь включения вашего проекта. Netbeans затем подберет файлы и использует их как ссылки на код.

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

Добавление

Полагаться на $_SERVER['DOCUMENT_ROOT'], как правило, плохая идея. С одной стороны, это исключает возможность запуска частей вашего приложения через консоль / командную строку.

Вместо этого следует либо использовать настраиваемые абсолютные пути к разделяемым библиотекам, либо сделать так, как в Ответ Брэндона , и использовать относительный путь из __DIR__ (PHP 5.3) или dirname(__FILE__)

2 голосов
/ 16 августа 2011

Не уверен, что это то, что вы ищете или нет, но я обычно использую:

 require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'file.php');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...