О web-разработке
и даже немного больше...

Пользовательские вспомогательные функции в OpenCart

При проектировании сайтов довольно часто приходится использовать некоторые функции, которые могут вызываться из разных частей сайтов. Не редко такие функции так же могут переносится между проектами, с их модификацией либо без них. В связи с этим удобном способом их можно выносить в отдельный файл, после чего подключать данный файл в нужных участках веб-приложения. Здесь мы рассмотрим похожую ситуацию, где требуется разместить некие функции в OpentCart так, чтобы они были доступны во всём проекте. Для этого можно воспользоваться возможностью создания хелпера (helper), который собственно прекрасно справляется с этой задачей. Термин хелпер может быть вам знаком, т.к. часто используется в различных фреймворках.
В OpenCart helper-ы размещаются в директории /system/helper. Для этого вам нужно создать файл, который в последующем вы будете подключать в скриптах. Добавим некую функцию для примера это будет функция token, которая будет генерировать некий случайные наборы символов.

<?php
function token($length = 32) {
    // Create token to login with
    $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';

    $token = '';

    for ($i = 0; $i < $length; $i++) {
        $token .= $string[mt_rand(0, strlen($string) - 1)];
    }   

    return $token;
}

Далее есть два способа включения хелпера в проект. Первый подразумевает постоянное включение хелпера при загрузке приложения. Второй можно включать в отдельных участках кода, что в свою очередь более предпочтительно в вопросе производительности приложения, если хелпер содержит значительное количество кода.
Подгружаем хелпер для всего проекта OpenCart
Чтобы подгрузить хелпер для всего проекта, можно подключить файл непосредственно в загрузчике /system/startup добавив строку:

require_once(DIR_SYSTEM . 'library/myhelper.php');

Файл myhelper.php в этом случае это ваш хелпер, который размещен в директории /library. После этого можно обращаться к функциям и классам, которые находятся в этом файле.

Включение хелпера в отдельных скриптах OpenCart
Если хелпер содержит значимый в вопросах производительности код, и не на всех частях сайта используется, то рекомендуется подключать хелпер используя встроенный загрузчик OpenCart.
В этом случае ваш хелпер следует разместить в директории /system/helper. В коде подключение хелпера будет выполняться таким образом:

$this->load->helper('helper_name');

В качестве значения helper_name следует указать имя файла без расширения php, т.к. сам движок будет дописывать этот суффикс при загрузке. Обращение к функции следует выполнять напрямую, без использования переменной экземпляра класса $this.

$this->load->helper('myhelper');

token();

В результате выполнения данного кода, будет подключен файл хелпера, который находится в файле /system/helper/myhelper.php, где объявлена функция token(), после чего будет произведено обращение к этой функции.

Опубликован: 06.05.2019 г.

См. также:

Обращение к модели в контроллере OpenCart
Платёжные системы в OpenCart
Переключение OpenCart с HTTP на HTTPS
Сброс пароля администратора в OpenCart
Как в OpenCart очистить кэш?
Как установить модуль в OpenCart 2.x?
Как поменять статус заказа в OpenCart?
Отправка писем в OpenCart

Комментарии

  1. Сергей Фортовый пишет:

    Можно только добавить- Если нужно подключить свой файл в хелпер к примеру Mobile_Detect.php, а в этом файле класс:

    class Mobile_Detect{
       function isMobile($length) {
          ......код
       } 
       function isTablet($length) { 
          ......код
       }
    

    То нужно так

     
    $this->load->helper('Mobile_Detect');
    $detect = new Mobile_Detect;
    $deviceType = ($detect->isMobile() ? ($detect->isTablet() ? 'tablet' : 'mobile') : 'desktop');
    

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Комментарии
  • Загрузка...
Друзья сайта