2013-07-05 2 views
0

В моем веб-приложение, у меня есть следующие константа:PHP константа кли/CGI

//set global path if not yet set 
if(!defined('FILE_ROOT_PATH')){ 
    define('FILE_ROOT_PATH', $_SERVER['DOCUMENT_ROOT']); 
} 

поэтому код переносим и я могу включать/требовать с абсолютными путями.

Теперь есть некоторые PHP-файлы, которые должны быть выполнены из CLI и CGI, и, конечно же, $ _SERVER недоступен из CLI.

Так что я сделал это изменить его к этому коду в этих специальных файлах, которые выполняются с CLI и CGI:

//set global path if not yet set and set it via dirname for CLI 
if(!defined('FILE_ROOT_PATH') && strlen($_SERVER['DOCUMENT_ROOT'])){ 
    define('FILE_ROOT_PATH', $_SERVER['DOCUMENT_ROOT']); 
}else{ 
    define('FILE_ROOT_PATH', dirname(dirname(__FILE__))); 
} 

так CGI будет выполнять первый «определить» и CLI 2-й.

Безопасно ли это? Когда выполняется в CLI, константа не будет «перезаписана» для CGI, не так ли? Спасибо за ваши мысли.

ответ

1

Постоянная существует только в течение срока действия скрипта. Экземпляр веб-экземпляра и консоли не будет пересекать пути, поскольку они работают в разных процессах. Это прекрасно, чтобы делать то, что вы делаете.

+0

спасибо! К сожалению, другая часть не работает, я добавлю выше ... –

+0

ОК, это работает. Благодарю. –

Смежные вопросы