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

Давайте ещё раз проговорим, какие преимущества даёт такое решение. Ну во-первых, вы получаете опыт работы с менеджером зависимостей и поднимаете планку своей профессиональной пригодности. Во-вторых, вы можете подключать к MODX сторонние библиотеки из огромного репозитория композера, которые не являются MODX пакетами. Например, известный monolog или Carbon для работы с датами. В-третьих, это даёт вам возможность подключать свои собственные библиотеки и наработки, которые вы храните, например, на GitHub. Это могут быть библиотеки функций, классов, файлы шаблонов или чанков и т.п.

И так приступим. Файлы композера мы будем размещать в папке core. В ней мы создадим файл composer.json. Если композер у вас установлен не глобально, то туда же нужно положить и файл composer.phar.

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

switch ($modx->event->name) {
    case 'OnMODXInit':
        $file = MODX_CORE_PATH . 'vendor/autoload.php';

        if (file_exists($file)) {
            require_once $file;
        }
        break;
}

На данном этапе вы уже можете загружать любые пакеты через Composer.

Пример подключения пакета

Для примера подключим библиотеку хелперов для MODX (modHelpers). Для этого нужно создать файл composer.json (или выполнить composer init) и добавить в него соответстствуюие разделы:

{
  "repositories": [
    {
      "type": "vcs",
      "url": "https://github.com/sergant210/modxhelpers"
    }
  ],
  "require": {
    "sergant210/modxhelpers": "1.*@beta"
  }
}

Теперь осталось выполнить команду composer install (вы должны перейти в папку core), которая создаст папку vendor и установит в неё указанную в секции «require» библиотеку «modxhelpers».

Нужно понимать, что не каждый хостинг настроен для работы с композером. Поэтому в большинстве случаев установку придётся проводить на локалке и потом деплоить папку vendor на сервер.

П.С. Для работы с композером есть интересный компонент ComposerConsole. Он представляет собой консоль для работы с композером прямо в админке. Он устанавливает все необходимые файлы и настраивает плагин.

12 января 2017, 10:36   1272     0

Комментарии ()

    Вы должны авторизоваться, чтобы оставлять комментарии.

    Выделите опечатку и нажмите Ctrl + Enter, чтобы отправить сообщение об ошибке.