Рейтинг:  0 / 5

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Использование сторонних библиотек в Yii

Использование сторонних библиотек в Yii

Перед тем, как использовать стороннюю библиотеку в приложении Yii, в первую очередь следует убедиться, что в ней либо явно настроена загрузка классов, либо классы могут загружаться автоматически.



Использование пакетов Composer

Многие сторонние библиотеки поставляются в виде пакетов Composer. Для установки таких библиотек достаточно проделать два простых шага:

  1. Изменить файл composer.json своего приложения и указать, какие пакеты Composer нужно устанавливать.
  2. Выполнить команду composer install, чтобы установить указанные пакеты.

Классы установленных пакетов Composer поддерживают автозагрузку с помощью автозагрузчика Composer. Убедитесь, что во входном скрипте приложения присутствуют следующие строки, подключающие автозагрузчик Composer:

// подключение автозагрузчика Composer
require(__DIR__ . '/../vendor/autoload.php');

// подключение файла класса Yii
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');

Использование отдельных библиотек

Если библиотека не поставляется в виде пакета Composer, необходимо установить ее согласно ее руководству по установке. В большинстве случаев потребуется вручную скачать файл с релизом и распаковать его в директорию BasePath/vendor, где BasePath соответствует базовому пути приложения.

Если библиотека использует собственный автозагрузчик классов, его можно подключить во входном скрипте приложения. Желательно подключить его до того, как подключается файл Yii.php, чтобы при автоматической загрузке классов у автозагрузчика классов Yii был приоритет.

Если библиотека не поставляется с автозагрузчиком классов, но конвенция именования ее классов соответствует PSR-4, для загрузки ее классов можно использовать автозагрузчик Yii. Для этого достаточно для каждого корневого пространства имен, которые используются в ее классах, объявить корневой псевдоним. Предположим, что библиотека установлена в директорию vendor/foo/bar, а ее классы объявлены в корневом пространстве имен xyz. В конфигурации приложения можно использовать следующий код:

[
    'aliases' => [
        '@xyz' => '@vendor/foo/bar',
    ],
]

Если ни один из предыдущих вариантов не подходит, скорее всего для использования библиотеки нужно настроить в конфигурации PHP директиву include_path. Настройте ее, следуя инструкциям, которые поставляются с библиотекой.

В наихудшем случае библиотека требует явного подключения всех файлов, содержащих классы. При этом для подключения классов по требованию можно проделать следующее:

  • Определить, какие классы входят в состав библиотеки.
  • Перечислить классы и пути к соответствующим файлам в Yii::$classMap во входном скрипте приложения. Например,
Yii::$classMap['Class1'] = 'path/to/Class1.php';
Yii::$classMap['Class2'] = 'path/to/Class2.php';

Заберите ссылку на статью к себе, чтобы потом легко её найти ;)

Выберите, то, чем пользуетесь чаще всего:

Спасибо за внимание, оставайтесь на связи! Ниже ссылка на форум и обсуждение ; )

Log in to comment