Коллеги, сейчас читал спецификацию по релизу PHP 7.2. Считаю важным обратить внимание разработчиков на важные момент. В данной версии mbstring.func_overload считается устаревшим и при не нулевом значении будет выбрасываться Deprecation notice. Это еще не критично, но стоит задуматься. Сейчас в битриксе при работе в uft-8 кодировке значение mbstring.func_overload = 2 является обязательным. Иначе сайт может не корректно работать.
Время еще есть, но предлагаю уже сейчас принимать это во внимание и начать процесс по устранению данной проблемы в будущем.
Список изменений можно посмотреть тут и конкретно по mbstring.func_overload тут
Нашел такую же идею тут. Нет возможности удалить, поэтому прошу голосовать в теме другого автора
Доступны дистрибутивы 20.5.393. Для существующих проектов - выпущены или тестируются обновления модулей (за исключением модуля compression - снят с использования, необходимо удалить).
Предлагаю добавить возможность писать модули только с определёнными версиями php. Например, модуль может работать только в php >5.5.
Надоело просто писать array() вместо [] и хочется использовать новые возможности языка. Я думаю, все адекватные люди следят за актуальность версий php на своих серверах и кастомизируют сайты использяю последние возможности php.
1) При использовании restore.php под php 7 невозможно разархивировать базу - пишет ошибки про mysql_connect, приходится в ручную восстанавливать 2) При переносе проекта с php5 на php7 неплохо чтобы скрипт проверял на строки подключения к базе в dbconn.php и .settings.php
Свершился релиз php7 и очень бы хотелось посмотреть на скорость работы уже сейчас
Fatal error: Cannot use 'String' as class name as it is reserved in bitrix\modules\main\lib\text\string.php on line 4
Fatal error: Argument 1 passed to Bitrix\Main\Diag\ExceptionHandler::handleException() must be an instance of Exception, instance of EngineException given in bitrix\modules\main\lib\diag\exceptionhandler.php on line 167
Fatal error: Argument 1 passed to Bitrix\Main\Diag\HttpExceptionHandlerOutput::renderExceptionMessage() must be an instance of Exception, instance of EngineException given, called in bitrix\modules\main\lib\diag\exceptionhandler.php on line 171 and defined in bitrix\modules\main\lib\diag\httpexceptionhandleroutput.php on line 11
...
Уже на протяжении нескольких лет партнеры молча страдают из-за этого жесткого требования от 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 - снят с использования, необходимо удалить).