从 class 问题中导出对象
Export objects from class issue
我有一个产品导出,我尝试使用我的自定义插件导出所有对象。我正在使用以下方法加载所有对象
$list = new Pimcore_Model_Object_Bodproduct();
$list->setOrder ( "ASC" );
$list->setOrderKey ( "o_id" );
// Load all filtered objects - products
$list->load ();
然后我使用 foreach 循环访问对象。
一切正常。但问题是导出需要很多时间。有没有其他解决方案..我的意思是不是 load()
函数,有没有其他方法可用?
您可以使用 $list->loadIdList()
来仅获取对象 ID - 这应该会更快。然后你可以在循环中调用 Object::getById($id)
来提供进度条(假设你的脚本在控制台中启动)。
其实这就是load()
内部在做的事情,请看Object\Listing\Resource class
另一种选择是通过调用 $list->getItems($offset, $itemCountPerPage)
.
将负载分配给多个 "pages"
在 Pimcore 对象列表中,您可以 遍历 列表中的每个对象而无需调用 load
方法。在您的情况下,只需删除 "$list->load ();"
即可看到它会用更少的时间工作。
我有一个产品导出,我尝试使用我的自定义插件导出所有对象。我正在使用以下方法加载所有对象
$list = new Pimcore_Model_Object_Bodproduct();
$list->setOrder ( "ASC" );
$list->setOrderKey ( "o_id" );
// Load all filtered objects - products
$list->load ();
然后我使用 foreach 循环访问对象。
一切正常。但问题是导出需要很多时间。有没有其他解决方案..我的意思是不是 load()
函数,有没有其他方法可用?
您可以使用 $list->loadIdList()
来仅获取对象 ID - 这应该会更快。然后你可以在循环中调用 Object::getById($id)
来提供进度条(假设你的脚本在控制台中启动)。
其实这就是load()
内部在做的事情,请看Object\Listing\Resource class
另一种选择是通过调用 $list->getItems($offset, $itemCountPerPage)
.
在 Pimcore 对象列表中,您可以 遍历 列表中的每个对象而无需调用 load
方法。在您的情况下,只需删除 "$list->load ();"
即可看到它会用更少的时间工作。