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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions