Yii, импорт библиотеки не работает
Я пытаюсь внедрить библиотеку Identicon на свой сайт, но я получаю сообщение об ошибке, что класс не найден.
я пытался с Yii::import('application.vendor.*');
поэтому я положил библиотеку в папку продавца, но она не работает.
я также попытался добавить библиотеку в контроллер компонента, но все равно выдает ошибку.
и я попытался сделать импорт в представлении, где код будет
<?php
Yii::import('application.vendor.*');
$identicon = new Identicon;
$identicon->displayImage('test');
?>
и все же он говорит мне ошибку, что этот класс не найден. я просто скопировал папку src из почтового индекса поставщикам и компонентам. как я могу импортировать эту библиотеку?
2 ответа
Я наконец импортировал Identicon
библиотека, отредактировав каждый файл из библиотеки и сохранив его в компонентах /Identicon.
похоже, что использование пространств имен, которые каждый файл имел в коде, не позволяло Yii импортировать, поэтому он работает, удаляя пространства имен и команду use для каждого файла, а затем импортируя его в файл конфигурации.
'import'=>array(
'application.models.*',
'application.components.*',
'application.components.Identicon.*'
),
Примечание. Все файлы, найденные в генераторе, должны находиться в той же папке, в которой находится Identicon.php.
так что вы можете использовать библиотеку почти как readme из Identicon
говорится
$Identicon = new Identicon;
$identicon->displayImage('foo'); //Displays the image.
Если ваша структура папок похожа
-- root
-- protected
|---- vendors
|---- myfolder
|---- MyClass.php
Вы можете импортировать это так
Yii::import('appplication.vendors.myfolder.MyClass');
Так как автоматическая загрузка yiis основана на имени файла, если класс Identicon был определен в MyClass, он не будет загружен, потому что у него другое имя файла, поэтому в этом случае вы должны использовать:
Yii::import('appplication.vendors.myfolder.*' , true);