Сторонний PHP-класс Yii2

Я хочу установить сторонний класс PHP для своего приложения. Как мне это сделать в Yii2? В документации ничего не нашел.


person www.data-blogger.com    schedule 05.12.2013    source источник
comment
Это требует дополнительной информации и контекста.   -  person Pekka    schedule 05.12.2013


Ответы (4)


Самый простой способ сделать это — просто зарегистрировать свой класс в любых пространствах имен, определенных Yii2, и использовать его в файле как use app\namespace\classname;.

person hemc4    schedule 07.12.2013

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

1) создайте новую папку в каталоге vendor и поместите туда библиотеку

2) требуется автозагрузчик в входном скрипте перед включением Yii, в случае базового шаблона приложения это path_to_yii_installation/web/index.php

Например, в одном из проектов, над которым я работал до того, как мне потребовалось генерировать листы Excel, я обнаружил, что PHPExcel — лучшая библиотека для этого. Поэтому я включил автозагрузчик PHPExcel следующим образом:

require(__DIR__ . '/../vendor/excel/PHPExcel.php');

Мой полный файл index.php выглядит так:

<?php

// comment out the following two lines when deployed to production
// defined('YII_DEBUG') or define('YII_DEBUG', true);
// defined('YII_ENV') or define('YII_ENV', 'dev');

require(__DIR__ . '/../vendor/excel/PHPExcel.php');
require(__DIR__ . '/../vendor/autoload.php');
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');

$config = require(__DIR__ . '/../config/web.php');

(new yii\web\Application($config))->run();

3) в верхней части вашего контроллера, модели или везде, где вы хотите использовать библиотеку, добавьте use LibraryClassName и все.

person Boris Savic    schedule 06.09.2015
comment
Не могли бы вы расширить шаг 2 с помощью примера. В моем index.php есть require(DIR . '/../../vendor/autoload.php'); значит ли это, что шаг сделан? - person crafter; 19.05.2016
comment
@crafter стал лучше? - person Boris Savic; 20.05.2016

На самом деле это хорошо описано в документации.

Вы можете узнать, как установить:

  1. с помощью композитора;
  2. using Downloaded Libraries;
    • If a library carries its own class autoloader;
    • Если в библиотеке нет автозагрузчика классов, но имена классов соответствуют PSR-4;
    • И если ни один из вышеперечисленных случаев не имеет места;
person FIMAk    schedule 12.12.2014

добавьте стороннюю библиотеку в composer.json и нажмите одну команду

 composer update

всегда выбирайте библиотеки на основе композитора.

person dev.meghraj    schedule 21.12.2013