В моем веб-приложение, у меня есть следующие константа: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, не так ли? Спасибо за ваши мысли.
спасибо! К сожалению, другая часть не работает, я добавлю выше ... –
ОК, это работает. Благодарю. –