Skip to content

кеширование структуры инфоблока #14

@maxlyaptsev

Description

@maxlyaptsev

Если сделать запрос - собирается список свойств и кешируется в методе
$props = IblockStructure::properties($iblockId);
в файле /vendor/maximaster/tools.orm/src/Maximaster/Tools/Orm/Iblock/ElementTable.php
Если после этого добавить свойство в инфоблок - то в кеше его нет и выдается exception что свойства не существует.

Unknown field definition ASD (ASD) for Product Entity.[/home/bitrix/www/bitrix/modules/main/lib/entity/querychain.php]"

Не очень приятная ситуация когда обновления заливаются на бой а миграция еще не применилась.

Как решить - либо не кешировать либо более правильно строить уникальный ключ. Можно сравнивать время изменения инфоблока, или добавить в уникальный ключ количество свойств. Хотя бы при добавлении свойства он бы сбрасывался. Да, придется делать всегда запрос для валидации кеша, но это лучше чем текущая ситуация.
В идеале сделать обработчик который при апдейте инфоблока сбрасывал бы кеш свойств.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions