几年来,我一直在使用Magento作为我的电子商务网站平台。
但是当我看到缺少PHP函数(例如print_r
或var_dump
)来处理将大对象/数组写入日志文件时(当在浏览器上打印这么多数据时),我有时会感到厌倦已经不可能了。)
例如,当我必须检查(调试它的轮廓和它包含的数据)时,一个大型集合对象(或由于依赖性而包含许多其他对象的对象),如category-collection
或product-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>
在这种情况下,如何(如果可以)我可以使用buffering
或string splitting
?
答案 0 :(得分:1)
您很可能不需要将整个集合实体登录到文件中,而是$collection->getItems()
。
集合对象的属性可能会有递归,因此无法正确地进行var_dump。