Плагин —> подключение внешних php библиотек и загрузчиков классов
Здравствуйте!
Помогите, пожалуйста, в следующих вопросах (версия движка 1.0.3):
1. В плагине требуется задействовать некоторые зависимости, полученные с помощью Composer.
В каком месте плагина их правильно подключать?
Подключение в главном классе плагина, в методе Init() — верное решение? Если нет, то подскажите правильный путь, пожалуйста?
Файл plugin_name.class.php
2. В плагине требуется задействовать некоторые свои библиотечные классы, хранящиеся в папке
Как правильно подключать свои либы к плагину? Можно ли через автозагрузчик классов? Если да, то где почитать про правила автозагрузки классов в LS?
Большое спасибо за помощь и ответы!
Помогите, пожалуйста, в следующих вопросах (версия движка 1.0.3):
1. В плагине требуется задействовать некоторые зависимости, полученные с помощью Composer.
В каком месте плагина их правильно подключать?
Подключение в главном классе плагина, в методе Init() — верное решение? Если нет, то подскажите правильный путь, пожалуйста?
Файл plugin_name.class.php
... // Инициализация плагина public function Init() { require 'vendor/autoload.php'; } ...
2. В плагине требуется задействовать некоторые свои библиотечные классы, хранящиеся в папке
lib/
Как правильно подключать свои либы к плагину? Можно ли через автозагрузчик классов? Если да, то где почитать про правила автозагрузки классов в LS?
Большое спасибо за помощь и ответы!
7 комментариев
В большинстве случаев подключение композера в Init() плагина должно прокатить.
В версии 2.0 уже есть поддержка PSR-0 (указывает на каталог
/framework/libs/vendor/
) и PSR-4Вот пример LS проекта, использующего composer — github.com/livestreet/developers.livestreetcms.com
С Композером — работает, проверил.
Со своими либами — только через require в Init() плагина, правильно?
//спасибо!
Можно и так
Можно создать файл в каталоге относительно корня папки плагина и сделать подключение в нем, а саму библиотеку разместить где угодно. Преимущество данного метода, что весь конфиг плагина к этому моменту уже будет загружен и доступен (в случае необходимости).
// спасибо за ответ и дополнения!
я тут ошибся:
это выполняется, но не «преимущество» т.к. в Инит() главного класса плагина тоже конфиг доступен.