Уже на протяжении нескольких лет партнеры молча страдают из-за этого жесткого требования от Bitrix - не всегда есть возможность применить данную конфигурацию на хостинге клиента.
Разработчики, которые хоть когда-нибудь работали с библиотекой PHPExcel для обработки операций с XLS помнят, какой это тяжелый труд - переводить весь сайт с UTF-8 на WINDOWS-1251 только из-за того, что эта библиотека не работает с mbstring.func_overload. Или воовсе приходилось отказываться от работы с XLS.
Итак, когда разработчики Symfony ввели требование не поддерживать mbstring.func_overload - это полностью сломало совместимость рабочего окружения Bitrix и всех инструментов, которые используют в своей базе те или иные компоненты от Symfony.
Я понимаю. Сделать это изменение сейчас - не представляется возможным, так как уже есть куча клиентов у которых заинтегрированны алгоритмы с использованием mbstring.func_overload.
Но скоро будет выпуск php7, который итак сломает весь код клиентов. Я предлагаю включить это изменение в релиз Bitrix, который будет работать с php7 (если таковой вообще планируется).
В будущем я собираюсь призывать PHP-сообщество к запрету и удалению функционала mbstring.func_overload. Даже сами разработчики PHP пишут:
Не рекомендуется использовать перегрузку функций в контексте поддиректорий, так как добиться стабильной работы в этом случае пока не удалось, и это может привести к неожидаемому поведению приложения.
Доступны дистрибутивы 20.5.393. Для существующих проектов - выпущены или тестируются обновления модулей (за исключением модуля compression - снят с использования, необходимо удалить).
Интересно что ни один представитель битрикс ничего не отписал. А ведь поддержка PHP7 для битрикса просто необходима, иначе он будет оочень медленным по сравнению с движками, которые на PHP7 работают .
а всего-то достаточно отключить эти настройки в php, выпилить проверки в Битриксе и подключить модуль symfony\polyfill-mbstring. Делов на пару апдейтов
Столкнулся еще с одной неприятностью с данной штукой: Переводили работу агентов на крон и столкнулись с проблемой - скрипт на кроне обрывается после вызова пролога <require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");>
чтобы проверить это - добави до данной строки и после var_dump - до подключения отработал, а после - нет. При этом, сервер выдал предупреждение: PHP Deprecated: The mbstring.func_overload directive is deprecated in Unknown on line 0
Битриксоиды давно все силы бросили в б24, а на CMS положили болт. По хорошему нужно было убрать mbstring.func_overload еще тогда, когда они объявили о переходе на PHP 7 и не позориться. Ну че смеяться - 2020 год на дворе. В профессиональной среде - стыдно признаться, что разрабатываю на "Битриксе"
Поясните пожалуйста. Это точно к идее про mbstring.func_overload ответ?
Доступны дистрибутивы 20.5.393. Для существующих проектов - выпущены или тестируются обновления модулей (за исключением модуля compression - снят с использования, необходимо удалить).
обновление v20.5.393 (beta) 2020-09-11 Исправлена ошибка в формировании ORM-запросов с DISTINCT.
обновление v20.5.393 (beta) 2020-09-11 Исправлена ошибка в формировании ORM-запросов с DISTINCT.
Артемий, дистрибутив != обновление. И да, это сообщение к этой идее. Дистрибутив можно (и нужно) ставить при выключенном (mbstring.func_overload 0) параметре.