У меня есть экспорт продукта, и я пытаюсь экспортировать все объекты, используя мои собственные плагины. Я использую метод ниже, чтобы загрузить все объекты
$list = new Pimcore_Model_Object_Bodproduct();
$list->setOrder ( "ASC" );
$list->setOrderKey ( "o_id" );
// Load all filtered objects - products
$list->load ();
Затем я использую цикл foreach для доступа к объектам.
Работает нормально. Но проблема в том, что экспорт занимает много времени. Есть ли другие решения для этого .. Я имею в виду вместо load()
функция, есть ли другой метод доступен?
Ты можешь использовать $list->loadIdList()
извлекать только идентификаторы объектов — что должно быть быстрее. Тогда вы можете позвонить Object::getById($id)
в цикле, чтобы обеспечить индикатор выполнения (при условии, что ваш скрипт запущен в консоли).
На самом деле это то, что load()
делает внутренне, пожалуйста, смотрите Объект \ Листинг \ Ресурсный класс
Другой вариант — разделить загрузку на множество «страниц», вызвав $list->getItems($offset, $itemCountPerPage)
,
В списке объектов Pimcore вы можете траверс каждый объект в списке без вызова load
метод. В вашем случае просто удалите "$list->load ();"
и увидеть, что это будет работать с меньшим количеством времени