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);
Другие вопросы по тегам