Cannot rediclare CheckFilterDates()

Есть два сайта на битрексе (site.ru, sub.site.ru). Для второго сайта папка bitrix является симлинком от первого. Второй сайт является поддоменом первого. При запуске второго сайта sub.site.ru вылетает ошибка:

[ErrorException] E_COMPILE_ERROR
Cannot redeclare CheckFilterDates() (previously declared in /site.ru/bitrix/modules/main/filter_tools.php:10) (0)
/site.ru/bitrix/modules/main/filter_tools.php:10
----------

Да я понимаю что функция где то уже объявлена. Однако (new ReflectionFunction('CheckFilterDates'))->getFileName() возвращает так же этот файл.

Также не срабатывает этот код:

// [file] /site.ru/bitrix/modules/main/filter_tools.php 
...

if(!function_exists('CheckFilterDates')){
  echo 'first require';
  exit();
}else{
  echo (new ReflectionFunction('CheckFilterDates'))->getFileName(); // /site.ru/bitrix/modules/main/filter_tools.php 
}

function CheckFilterDates($date1, $date2, &$date1_wrong, &$date2_wrong, &$date2_less_date1)
{
...

Не понимаю как может сразу выполняться блок else проходя при этом мимо блока if.

Работает на php8.1. До поднятия версии php все работало. Мб не хватает каких настроек апача или нджинкса.

Может кто сталкивался с таким поведением при использовании simlink? Помогите пожалуйста.

P.S. посмотрел везде подключение этого файла, везде используется require_once.


Ответы (0 шт):