Работа с кешем выполнения
Pimcore сильно использует кэш среды выполнения для кэша результатов API по соображениям производительности. Тем не менее, очень важно понять, как справиться с кэшированными результатами, чтобы правильные данные использовались из API. Давайте возьмем несколько примеров, чтобы понять подобные ситуации:
//Delete item from the list
$list = new \Pimcore\Model\DataObject\Myclassname\Listing;
//or
$list = new \Pimcore\Model\Document\Listing;
//or
$list = new \Pimcore\Model\Asset\Listing;
$list->load();
$list->current()->delete(); //delete current item from list
$list->load(); //call load again to reset the runtime cache
foreach ($list as $element) {
...
}
//using force param to load latest data from database
\Pimcore\Model\DataObject::getById(123) === \Pimcore\Model\DataObject::getById(123) => true
\Pimcore\Model\DataObject::getById(123) === \Pimcore\Model\DataObject::getById(123, ['force' => true]) => false
Использование большого количества объектов в одном процессе может привести к ошибке «недостаточно памяти». Например, перечислить через тысячи объектов во время чтения или даже создания их. Пожалуйста, обратитесь к этому раздел, чтобы решить проблемы с памятью, что также очищает кеш времени выполнения вместе с задачами.
Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.