2015-10-13 3 views
2

У меня есть экспорт товаров, и я пытаюсь экспортировать все объекты, используя мои собственные плагины. Я использую ниже метод для загрузки всех объектовЭкспортировать объекты из класса вопрос

 $list = new Pimcore_Model_Object_Bodproduct(); 
     $list->setOrder ("ASC"); 
     $list->setOrderKey ("o_id"); 

     // Load all filtered objects - products 
     $list->load(); 

Затем я использую цикл foreach для доступа к объектам.

Работает нормально. Но проблема в том, что для экспорта требуется много времени. Есть ли другие решения для этого. Я имею в виду вместо функции load(), есть ли другой способ?

ответ

2

Вы можете использовать $list->loadIdList() для извлечения только идентификаторов объектов, которые должны быть быстрее. Затем вы можете вызвать Object::getById($id) в цикле, чтобы обеспечить индикатор выполнения (при условии, что ваш скрипт запущен на консоли).

На самом деле это то, что load() делает внутренне, пожалуйста, см Object\Listing\Resource class

Другой вариант заключается в разделении нагрузки на многие «страницы» по телефону $list->getItems($offset, $itemCountPerPage).

+0

Спасибо, это тоже приятное решение. Но на самом деле я перепутался в своей петле foreach. – Elavarasan

0

В списке объектов Pimcore вы можете traverse каждый объект в списке без вызова метода load. В вашем случае просто удалите "$list->load();" и увидите, что он будет работать с меньшим временем.

Смежные вопросы