将大型动态数组/对象写入文本格式的日志文件

时间:2016-06-04 18:00:32

标签: php arrays magento object logging

几年来,我一直在使用Magento作为我的电子商务网站平台。

但是当我看到缺少PHP函数(例如print_rvar_dump)来处理将大对象/数组写入日志文件时(当在浏览器上打印这么多数据时),我有时会感到厌倦已经不可能了。)

例如,当我必须检查(调试它的轮廓和它包含的数据)时,一个大型集合对象(或由于依赖性而包含许多其他对象的对象),如category-collectionproduct-collection,如果我在代码下面运行:

$collection = Mage::getModel('catalog/category')->getCollection();

$collection = Mage::getModel('catalog/product')->getCollection();
Mage::log(print_r($collection, true), null, 'developer.log');

然后很多次我收到错误Allowed memory size of ######## bytes exhausted ...,特别是在进行实时项目(共享服务器上托管的实时网站)时。

因此,我真的需要一个core-php建议,关于如何将大型对象/数组(如Magento集合)写入文本日志文件而不需要PHP Engine耗尽内存而无需安装Xdebug或其他外部实用程序。 / p>

在这种情况下,如何(如果可以)我可以使用bufferingstring splitting

1 个答案:

答案 0 :(得分:1)

您很可能不需要将整个集合实体登录到文件中,而是$collection->getItems()。 集合对象的属性可能会有递归,因此无法正确地进行var_dump。