如何安装yii扩展,使其可用于整个web应用程序?

如何安装yii扩展,使其可用于整个web应用程序?,yii,yii-extensions,Yii,Yii Extensions,最近我决定学习php,发现了yii框架。乍一看,使用它似乎很容易,但现在我正努力配置我的web应用程序,以便安装一个扩展来使用enum。我从他们的网站下载了这个扩展,并把它放在扩展文件夹中。问题是我不能调用我在代码中创建的子类。我创建了几个从这个超类(扩展)扩展而来的类 要使此扩展类可用于我的web应用程序代码,我必须执行哪些配置 正如我所说,我只是把那个扩展类放在我的扩展文件夹中,我只是在控制器的方法中实例化它们。当我运行代码时,无论我做了什么配置,我都会看到相同的错误消息: include(

最近我决定学习php,发现了yii框架。乍一看,使用它似乎很容易,但现在我正努力配置我的web应用程序,以便安装一个扩展来使用enum。我从他们的网站下载了这个扩展,并把它放在扩展文件夹中。问题是我不能调用我在代码中创建的子类。我创建了几个从这个超类(扩展)扩展而来的类

要使此扩展类可用于我的web应用程序代码,我必须执行哪些配置

正如我所说,我只是把那个扩展类放在我的扩展文件夹中,我只是在控制器的方法中实例化它们。当我运行代码时,无论我做了什么配置,我都会看到相同的错误消息:

include(xxx.php):无法打开流:没有这样的文件或目录

如果有人想知道更多关于这个扩展的信息,这是一个页面,显示了一些关于这个扩展的信息


config/main.php
中,您应该在组件数组中添加扩展详细信息,例如:

    return array(
        // 'preload'=>array('xyz',...),
        'components'=>array(
            'xyz'=>array(
                'class'=>'ext.xyz.XyzClass',
                'property1'=>'value1',
                'property2'=>'value2',
            ),
            // other component configurations
        ),

);
其中,
xyz
是一个扩展


或者把它放在extensions文件夹中,通过
Yii::import('application.extensions.extensionname.*')导入它

您还可以将其添加到配置中的全局导入中
'import=>['alias.*']]
以避免在每个视图中导入。我按照您的说明进行了操作,但现在出现了一个致命错误,即无法实例化抽象类Enum。有没有额外的配置,我需要这样做,我现在可以解决这个错误?我甚至试图把一行导入部分,这样它可以在我的整个web应用程序中使用,但我仍然与相同的错误:包括(xxx.php):未能打开流:没有这样的文件或目录。我还是不明白。如果这个扩展类是抽象类,为什么应用程序会抱怨它的实例?如果我做了正确的配置,应用程序不应该抱怨抽象类的实例化问题,因为我从中创建了子类,所以我认为它永远不会抱怨这个类。