0

我一直在研究一种在我的 Magento 门户中下订单时保存 xml 文件的方法。一切似乎都没有错误地保存,除非方法完成,我在任何地方都找不到我的 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 文件。有什么想法吗?

4

1 回答 1

2

PHP 中有许多错误可能会阻止上述代码运行(取决于您的PHP 错误设置和 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 试图将文件保存在哪里,并使用自定义日志将错误报告调到最大。这应该为您指明正确的方向。

于 2013-09-27T18:49:44.747 回答