Я пытаюсь добавить библиотеку Zendesk API в Magento 1.x Enterprise. Расширение Zendesk по умолчанию для Magento не имеет необходимых мне функций. Кажется, он не содержит функций для создания новых заявок из пользовательской веб-формы.
Я установил официальную библиотеку PHP Zendesk API отсюда: https://github.com/zendesk/zendesk_api_client_php
И установил его в папку lib Magento. Однако, когда я пытаюсь включить библиотеку в другие файлы, она выдает ошибку о том, что класс не найден. Я полагаю, что это связано с тем, что библиотека не следует соглашениям об именах Zend.
Любые идеи о том, как использовать библиотеки, которые не соответствуют соглашению об именах Zend в Magento?
Да, он использует пространство имен, которое Magento 1.x не поддерживает своя автозагрузчик.
Вы все еще можете использовать его, но просто не можете рассчитывать на его загрузку с помощью автозагрузчика Magento. Самый простой способ, вероятно, будет установить его с помощью composer, затем включите его, используя автозагрузчик, например:
# File: app/code/local/YourCompany/YourModule/Helper/Data.php
require_once 'vendor/autoload.php'; # get composer's autoloader
class YourCompany_YourModule_Helper_Data extends Mage_Core_Helper_Abstract
{
public function getZenDesk()
{
$client = new \Zendesk\API\HttpClient($subdomain, $username);
// do stuff with it
}
}
Если не находит vendor/autoload.php
автоматически вам может потребоваться быть более конкретным, т.е.
require_once Mage::getBaseDir('base') . '/vendor/autoload.php';
Других решений пока нет …