Yii,导入库不起作用

时间:2014-08-19 01:00:50

标签: php yii identicon

我试图将Identicon库实现到我的网站,但是我收到了找不到类的错误。

我尝试使用Yii::import('application.vendor.*');,所以我将库放在供应商文件夹中,但它不起作用。

我也尝试将库添加到组件控制器,但仍然给我错误。

我尝试在视图中导入

<?php
    Yii::import('application.vendor.*');
    $identicon = new Identicon;

    $identicon->displayImage('test');
?>

但它告诉我错误,找不到这个类。我只是将src文件夹从zip复制到供应商和组件。我该如何导入这个库?

2 个答案:

答案 0 :(得分:0)

如果您的文件夹结构类似于

-- root
-- protected
      |---- vendors
            |---- myfolder
                     |---- MyClass.php

您可以像这样导入

 Yii::import('appplication.vendors.myfolder.MyClass');

因为yiis自动加载是基于文件名,如果在MyClass中定义了类 Identicon ,它将不会被加载,因为它具有不同的文件名,所以在这种情况下你必须使用:

 Yii::import('appplication.vendors.myfolder.*' , true);

答案 1 :(得分:0)

我最后通过编辑库中的每个文件导入Identicon库并将其存储到components / Identicon中。

似乎每个文件在代码上使用的命名空间都不允许Yii导入,因此它通过删除每个文件上的命名空间和use命令,然后将其导入配置文件来工作。

'import'=>array(
        'application.models.*',
        'application.components.*',
        'application.components.Identicon.*'
),

注意:在生成器中找到的所有文件必须与Identicon.php所在的文件夹相同。

因此您可以使用该库,就像Identicon中的自述文件

一样
$Identicon = new Identicon;

$identicon->displayImage('foo'); //Displays the image.