Separator

 

Bitrix: определение DOCUMENT_ROOT при запуске скрипта из под cron'а

При запуске скриптов из под cron'а и необходимости подключать файлы CMS возникает трудность заключающаяся в том что $_SERVER['DOCUMENT_ROOT'] пуст. Как вариант - обычно прописывают путь жёстко, в скрипте.

Однако если скрипт пишется сначала на "тестовом" сервере, а потом переносится, то перед переносом придётся этот хардкод править, что иногда нежелательно и всегда неудобно. Вот, пусть и не идеальное, но решение авто-определения DOCUMENT_ROOT:

$_SERVER['DOCUMENT_ROOT'] = dirname(__FILE__);
$bxDirPos = strpos($DR, 'bitrix');
if ( $bxDirPos !== false )
 $_SERVER['DOCUMENT_ROOT'] = substr($_SERVER['DOCUMENT_ROOT'], 0, $bxDirPos-1);
Помещаем это в самое начало скрипта. Для правильного определения скрипт должен быть расположен внутри подпапок bitrix.

Вроде бы просто, но может кому и поможет. Или заставит задуматься не хардкодить :)

Комментариев нет:

Отправить комментарий