При проектировании сайтов довольно часто приходится использовать некоторые функции, которые могут вызываться из разных частей сайтов. Не редко такие функции так же могут переносится между проектами, с их модификацией либо без них. В связи с этим удобном способом их можно выносить в отдельный файл, после чего подключать данный файл в нужных участках веб-приложения. Здесь мы рассмотрим похожую ситуацию, где требуется разместить некие функции в 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(), после чего будет произведено обращение к этой функции.
Можно только добавить- Если нужно подключить свой файл в хелпер к примеру Mobile_Detect.php, а в этом файле класс:
То нужно так