Yii: автозагрузка библиотек, использующих namespace
3 ноября 2011
Для загрузки библиотек, использующих namespace по соглашению PSR-0 (например, Zend Framework 2 или Symfony2) необходимо сначала зарегистрировать корень библиотеки как псевдоним пути.
Для примера попробуем использовать Imagine. Скорируем директорию Imagine
в protected/vendors
. Ну и само использование:
Yii::setPathOfAlias('Imagine',Yii::getPathOfAlias('application.vendors.Imagine')); // Далее стандартный код из README Imagine: // $imagine = new Imagine\Gd\Imagine(); // и т.д.
В приведённом коде имя псевдонима пути должно совпадать с первой частью namespace, которая используется в библиотеке.
Данное описание со следующим релизом попадёт в официальный гайд.
Комментарии RSS по email OK
Не до конца понял что это такое и как работает... То есть теперь можно будет писать ?
Ну, если
CGridView
у тебя в namespace, то да.Сейчас в проекте использую namespace. Не работает автозагрузчик консольных команд. Сделал также, как с контроллерами в web-приложении, т.е. прописал в commandMap (в web - controllerMap), задал нужный alias, но файлы с классами команд найти не может.
Я пока не стал ковыряться и оставил команды в глобальном пространстве имён. Sam, не сталкивался с таким?
2sam, То есть ? Эта фича касается только ns ?
mrix, нет, пока не сталкивался.
Максим, да.
А что насчет вот такой библиотеки: github.com/symfony/Filesystem
У нее составной namespace. Сработает ли:
Должно.
Этого не достаточно.
Нужно например описать где лучше прописать этот код. Можно ли через конфиг объявить namespace. В идеале полный пример кода с объяснением где лежит внешняя либа и т.д. и т.п.
Потом с одной строкой использование либы.