в частности -
\Bitrix\Iblock\Model\Section::resolveIblockId
который используется внутри метода для генерации ORM для разделов инфоблока(\Bitrix\Iblock\Model\Section::compileEntityByIblock). при передаче в этот метод параметра с идентификатором инфоблока, но если вдруг идентификатор будет являться строкой, то все сломается где-то в участке кода: см скрин
потому что передается айдишник и как строка, но проверка что is_numeric($iblock) происходит после переопределения переменной iblock. и в ответе на ранее корректный запрос сгенерированного орм по секциям инфоблока мы получаем null
что нибудь известно об этом? или я первый кто на такое наткнулся?
Кто-то пробегал, но не сумел сформулировать. Теперь причину вижу. Спасибо.
оформил заявку в тп 2877526 мб чем поможет еще, заодно нашел тему в которой вы уже отвечали https://dev.1c-bitrix.ru/support/forum/forum6/topic142804/ з.ы. я конечно пробежался сейчас по своему коду и привел все к int, но все же...
Отсутствие строгой типизации по историческим причинам регулярно аукается. До сих пор с содроганием вспоминаю выпуск обновлений с отказом от mbstring overload. Фикс будет, но рекомендую все же в своем коде приводить данные к нужному типу.
Обсуждают сегодня