从 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 ();" 即可看到它会用更少的时间工作。