从类问题导出对象


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()正在做的内部,请参阅对象'清单'资源类

另一个选择是通过调用$list->getItems($offset, $itemCountPerPage)将加载拆分为多个"页面"。

在Pimcore对象列表中,您可以遍历列表中的每个对象,而无需调用load方法。在您的情况下,只需删除"$list->load ();",看看它会用更少的时间工作。