2013-09-27 14 views
0

我一直在研究在Magento門戶中放置訂單時保存xml文件的方法。一切似乎保存沒有錯誤,除非方法完成,我找不到我的xml文件任何地方在Magento中找不到我保存的xml文件

有沒有人知道它保存文件的位置?或者是Magento在方法完成並刪除文件後偷偷進入?

try { 
    Mage::log('Attempting to save xml...'); 
    $xml->asXML("test.xml"); 
    Mage::log('Xml saved!'); 
} catch (Exception $e) { 
    Mage::log('Problem encountered'); 
    Mage::log($e->getMessage()); 
} 

我的XML也轉換爲字符串,並將其通過電子郵件發送給自己,一切看起來是在檢查那裏。根據日誌,該文件保存沒有錯誤,因爲我得到了「Xml保存!」在他們的消息。但是當我檢查這個模塊的目錄時,沒有xml文件。有什麼想法嗎?

+0

你是否檢查過index.php中的目錄? – Jason

回答

2

在PHP中有很多錯誤都不例外,它可能會阻止上面的代碼運行(取決於您的PHP error settings和Magento的開發人員模式設置)。文件不會被寫入的最常見原因是文件權限,這不會引發異常,它只會引發錯誤。

我會在你的asXml通話

error_reporting(E_ALL | E_STRICT); 
ini_set('log_errors','1'); 
ini_set('error_log','/tmp/my-custom-php-error-log.log'); 
ini_set('display_errors', '1'); 

echo "The current working PHP directory is " . getcwd() . "\n" . "<br/>" . "\n"; 
$xml->asXML("test.xml"); 

這將告訴你PHP在哪裏試圖保存文件,以及曲柄的錯誤報告最大使用自定義日誌之前下列下降。這應該指向你正確的方向。

+0

雖然執行後我找不到my-custom-php-error-log.log,但由於getcwd命令,我能夠跟蹤保存test.xml的位置。 「當前工作的PHP目錄是/ home/edencom/public_html」。我想錯誤日誌從創建文件起就沒有創建過。非常感謝你的幫助! – Rob

+0

@Rob這是正確的,只有在產生錯誤時纔會創建錯誤日誌(並且您的服務器管理員沒有禁用ini_set) –