Я написал модуль Magento для прослушивания события «OrderSave» и выполнения некоторых вызовов API сторонним приложением. Большая часть функциональности работает отлично, но мне нужно было обработать XML-ответ от API, и когда я попытался использовать класс PEAR XML_Unserializer, я получил следующую ошибку:
Неустранимая ошибка: require_once () [function.require]: Не удалось открыть обязательный файл 'XML / Parser.php' (include_path = '/ Users / jeremymoore / Сайты / 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.
Буду признателен за любые предложения о лучшем способе автозагрузки или включения этих библиотек для использования в моем модуле или просто идеи о том, как исправить то, что у меня есть.
Спасибо