Как включить мою пользовательскую библиотеку в Opencart 3

Как включить мою пользовательскую библиотеку в Opencart 3

19.09.2019 11:25:33 Просмотров 104 Источник

Я хочу добавить пользовательскую библиотеку в свой магазин без добавления require

Как я могу включить его без изменения файлов фреймворка?

У вопроса есть решение - Посмотреть?

Ответы - Как включить мою пользовательскую библиотеку в Opencart 3 / How to include my custom library in Opencart 3

Является ответом!
CROSP

19.09.2019 11:46:54

Насколько вы используете Opencart 3+есть хорошие новости. Библиотеки загружаются автоматически, если они настроены правильно.

Как мы можем найти в источниках Opencart. Используются функции автоматической загрузки:

spl_autoload_register('library');
spl_autoload_extensions('.php');

И сама libraryфункция

function library($class)
{
    $file = DIR_SYSTEM . 'library/' . str_replace('\\', '/', strtolower($class)) . '.php';
    if (is_file($file)) {
        include_once(modification($file));

        return true;
    } else {
        return false;
    }
}

Итак, чтобы загрузить свою пользовательскую библиотеку:

  1. Создать а .phpфайл в <root>/system/library, в этом случае мы можем дать следующее имя-superlibrary.php

  2. Давайте считать, что наш библиотечный класс является синглтоном. Так что в нашем файле superlibrary.php давайте определим простой класс:

      class SuperLibrary
      {
           private static $inst;
           public static function getInstance()
           {
               static::$inst = null;
               if (static::$inst === null) {
                  static::$inst = new static();
               }
               return static::$inst;
           }
    
           private function __construct()
           {
           }
    
           public function someMethod() {
               var_dump("HELLO WORLD");
               exit;
           }
      }
    
  3. Затем, если вы попытаетесь сбросить загруженные классы, вы не найдете его в списке, потому что мы не использовали его нигде в нашем коде. Давайте использовать его, например, в любом контроллере:

    $superLib = SuperLibrary::getInstance();
    $superLib->someMethod();
    
  4. Если все настроено правильно, вы должны увидеть сброшенный вывод метода.

Надеюсь, это поможет.

https://stackoverflow.com/questions/58018504/how-to-include-my-custom-library-in-opencart-3/58018740#comment102441225_58018740
Спасибо за такой подробный ответ, постараюсь
Закрыть X