1

我编写了一个 Magento 模块来监听“OrderSave”事件并对第三方应用程序执行一些 API 调用。大多数功能运行良好,但我需要处理来自 API 的 XML 响应,当我尝试使用 PEAR XML_Unserializer 类时,我收到以下错误:

致命错误:require_once() [function.require]:无法打开所需的“XML/Parser.php”(include_path='/Users/jeremymoore/Sites/Helm/html/app/code/local:/Users/jeremymoore/Sites/ Helm/html/app/code/community:/Users/jeremymoore/Sites/Helm/html/app/code/core:/Users/jeremymoore/Sites/Helm/html/lib:.:/Applications/MAMP/bin/php5 /lib/php:/usr/loca/zend//share/ZendFramework/library') 在 /Users/jeremymoore/Sites/Helm/html/lib/PEAR/XML/Unserializer.php 第 58 行

我的模块在模型中有一个 Observer.php 文件,其开头如下所示:

<?php
require_once 'lib/PEAR/XML/Serializer.php';
require_once 'lib/PEAR/XML/Unserializer.php';
require_once 'lib/Pest/PestXML.php';
Zend_Loader::registerAutoload();

class Helm_Litmos_Model_Observer
{
    public function hookToOrderSaveEvent()
    {
        //Do API Stuff Here
    }
}

hookToOrderSaveEvent 函数创建序列化器和反序列化器类的新实例。在添加 Unserializer 代码之前,我已经完成了对对象进行序列化和进行 API 调用的一切工作。当 XML_Unserializer 类尝试引用 Parser.php 时,事情似乎发生了故障。

我不确定我在这里使用的“require_once”方法是否适合我包含这些库。我正在使用 Magento 1.4.1.1,它目前正在运行 MAMP 的本地机器上使用。

有关自动加载或包含这些库以在我的模块中使用的更好方法的任何建议,或者只是关于如何修复我所拥有的问题的想法,我们将不胜感激。

谢谢

4

1 回答 1

1

您可以尝试使用Mage::getBaseDir('lib')

require_once Mage::getBaseDir('lib').'/PEAR/XML/Serializer.php';

Alan 有一篇关于 Magento 基本目录的好文章:

http://alanstorm.com/magento_base_directories

于 2011-06-20T15:35:18.963 回答