从类问题中导出对象

Posted

技术标签:

【中文标题】从类问题中导出对象【英文标题】:Export objects from class issue 【发布时间】:2016-01-10 19:42:01 【问题描述】:

我有一个产品导出,我尝试使用我的自定义插件导出所有对象。我正在使用下面的方法来加载所有对象

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

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

然后我使用 foreach 循环来访问对象。

一切正常。但问题是导出需要花费大量时间。有没有其他解决方案..我的意思是代替load()函数,有没有其他方法可用?

【问题讨论】:

【参考方案1】:

您可以使用 $list->loadIdList() 仅获取对象 ID - 这应该更快。然后你可以在循环中调用Object::getById($id) 来提供进度条(假设你的脚本是在控制台中启动的)。

其实这是load()在内部做的,请看Object\Listing\Resource class

另一种选择是通过调用$list->getItems($offset, $itemCountPerPage) 将负载拆分到多个“页面”。

【讨论】:

谢谢,这也是一个不错的解决方案。但实际上我在 foreach 循环中搞砸了。【参考方案2】:

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

【讨论】:

以上是关于从类问题中导出对象的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ES6 中导出导入的对象?

如何在 JSON 文件中导出对象数组,然后使用 es6 导入 [重复]

如何以与 toad 相同的方式在 PL/SQL 中导出数据库对象?

如何在行和列中排列对象并在.svg中导出[关闭]

Tensorflow在Python中导出和重用Estimator对象

在使用 gulp 构建的 Webpack 包中导出 Typescript 函数,浏览器中的空对象