Как создать кастомную библиотеку API в OpenCart

Как создать кастомную библиотеку API в OpenCart

От автора: в самом ядре OpenCart уже есть множество функций, однако зачастую необходимо интегрировать стороннюю библиотеку. В то же время, есть концепция библиотеки, которая обеспечивает общий набор OpenCart API для ежедневных операций, как например, взаимодействие с системой конфигурации или системой баз данных, работа с email и т.д. Сегодня мы узнаем, как реализовать свою кастомную библиотеку в OpenCart.

В этой статье мы создадим кастомную библиотеку, с помощью которой вы сможете делать CURL запросы. Постараемся не усложнять. Важно понять концепцию, а реализация может отличаться по сложности.

Будем использовать последнюю версию OpenCart. Предполагаю, что вы знакомы с модульной структурой OpenCart.

Что такое библиотека в OpenCart?

Что же такое библиотека в OpenCart? Простым языком, это набор скриптов, обеспечивающий основной функционал во фреймворке. В OpenCart все библиотеки находятся в папке system/library. Например, входящий запрос обрабатывается библиотекой Request, а для обработки ответа есть библиотека Response. Аналогично есть библиотеки для кэширования, покупателей, баз данных и систем конфигурации. Назовем парочку.

Необходимые библиотеки загружаются в код контроллера/модели. Для загрузки любой библиотеки необходимо сделать что-то типа:

В примере выше мы загрузили библиотеку cache. Теперь вам доступен объект $cache, от которого вы можете вызывать методы, определенные в этой библиотеке. Как видите, это действительно гибкий способ загрузки объектов.

Сегодня мы реализуем библиотеку curl, с помощью которой вы сможете делать CURL вызовы с помощью самой библиотеки. В контроллере лучше избегать дублирования кода, так как для каждого CURL запроса необходимо создать объект и настроить общие заголовки. Мы обернем код в общую библиотеку, чтобы не дублировать его в модулях и иметь возможность повторно использовать его.

Прежде чем перейдем к реализации кастомной библиотеки, давайте взглянем на одну из библиотек ядра OpenCart.

Изучите код библиотеки ядра

В предыдущем разделе мы говорили про библиотеку кэширования, давайте посмотрим ее код. Откройте файл system/library/cache.php в текстовом редакторе.

Все просто, правда? Простой класс с необходимыми методами. Это очень простой пример, но он мог быть достаточно сложным! Просмотрите еще пару библиотек, чтобы ознакомиться с концепцией.

Создание кастомной библиотеки: curl

Вы ознакомились с библиотеками ядра, теперь давайте создадим свою! Создайте файл system/library/curl.php со следующим кодом.

Мы определили класс Curl с полезными методами.

Метод get_instance позволяет создавать объект класса. Он также проверяет, что в любое время у нас всего один экземпляр класса.

Далее мы определяем конструктор с аргументом $registry. Аргументы не нужны, но для примера я его задал, чтобы показать, как загружать другие библиотеки с помощью объекта $registry. В нашем примере мы загружаем библиотеку Log и назначаем ее на свойство logger. С помощью этой библиотеки мы будем логировать curl запросы для отладки!

Есть метод do_request, который выполняет всю тяжелую работу за нас! Он принимает два аргумента: $url хранит URL, на который мы будем делать curl запрос, а $params хранит необязательный массив параметров, если понадобится отправить POST запрос с любыми данными. Далее очень простой код: он делает curl запрос и возвращает ответ!

Почти закончили с созданием кастомной библиотеки. В следующем разделе посмотрим ее в действии.

Как использовать нашу кастомную библиотеку

В большинстве случаев вы будете вызывать библиотеки из контроллера. Давайте посмотрим, как загружать и использовать библиотеку из контроллера.

Выражение $this->load->library(‘curl’) загружает кастомную библиотеку. В следующем выражении мы вызвали метод get_instance и передали объект $registry, как аргумент конструктора. Далее мы использовали метод do_request для совершения curl запроса!

Как видите, довольно легко создать свою собственную библиотеку в OpenCart! Точно так же вы можете интегрировать любую стороннюю библиотеку в формат библиотек OpenCart и использовать ее во всем фреймворке.

Заключение

Сегодня мы обсудили концепцию библиотеки в OpenCart. Мы изучили библиотеки ядра и создали свою библиотеку для curl. Надеюсь, вам понравилось! Делитесь своими мыслями и запросами в комментариях!

Автор: Sajal Soni

Источник: //code.tutsplus.com/

Редакция: Команда webformyself.

Метки:

Похожие статьи:

Комментарии Вконтакте: