Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
maxlyaptsev opened this issue Sep 14, 2018 · 1 comment
Open

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

maxlyaptsev opened this issue Sep 14, 2018 · 1 comment

Comments

@maxlyaptsev
Copy link

Если сделать запрос - собирается список свойств и кешируется в методе
$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]"

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

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

@mmjurov
Copy link
Member

mmjurov commented Sep 15, 2018

На мой взгляд логичнее было бы добавить работу с битриксовым тегированным кешем. В этом случае он бы автоматом сбрасывался во всех типовых кейсах, кроме описанного тобой. Для поддержки твоего кейса в приложении достаточно будет сбрасывать тегированный кеш инфоблока при добавлении свойства (если битрикс сам не делает этого уже, я хз).

Доработка мне видится в общем-то не сложной. Сможешь заняться?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants