簡體   English   中英

將大型動態數組/對象寫入文本格式的日志文件

[英]Writing large dynamic arrays/objects to text formatted log files

幾年來,我一直使用Magento作為我的電子商務網站平台。

但是,當我看到缺少諸如print_rvar_dump類的PHP函數來處理將大型對象/數組寫入日志文件時,有時會感到非常var_dump (當在Browser上打印這么多數據時已經毫無疑問)。

例如,當我必須檢查(調試它的輪廓和所保存的數據)時,如果我在以下代碼下運行,則一個大型集合對象(或由於依賴性而包含很多其他對象的對象),例如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 ... ,尤其是在進行實時項目(共享服務器上托管的實時網站)時。

因此,在此之后,我真的需要一個有關如何將大型對象/數組(如Magento集合)寫入文本日志文件的PHP核心建議,而不會導致PHP Engine內存不足且無需安裝Xdebug或其他外部實用程序。

在這種情況下,如何(如果可以的話)可以使用bufferingstring splitting

您很可能不需要將整個集合實體登錄到文件中,而是需要$collection->getItems() 您的collections對象的屬性中可能存在遞歸,因此不能正確進行var_dump'ed。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM