首页 > 开发 > Php > 正文

详解PHP的Yii框架中扩展的安装与使用

2020-02-21 20:50:54
字体:
来源:转载
供稿:网友

扩展是专门设计的在 Yii 应用中随时可拿来使用的, 并可重发布的软件包。例如, yiisoft/yii2-debug 扩展在你的应用的每个页面底部添加一个方便用于调试的工具栏, 帮助你简单地抓取页面生成的情况。 你可以使用扩展来加速你的开发过程。

信息:本文中我们使用的术语 "扩展" 特指 Yii 软件包。而用术语 "软件包" 和 "库" 指代非 Yii 专用的通常意义上的软件包。
使用扩展

要使用扩展,你要先安装它。大多数扩展以 Composer 软件包的形式发布, 这样的扩展可采取下述两个步骤来安装:

修改你的应用的 composer.json 文件,指明你要安装的是哪个扩展 (Composer 软件包)。
运行 composer install 来安装指定的扩展。
注意如果你还没有安装 Composer ,你需要先安装。

默认情况,Composer安装的是在 Packagist 中 注册的软件包 - 最大的开源 Composer 代码库。你可以在 Packageist 中查找扩展。 你也可以 创建你自己的代码库 然后配置 Composer 来使用它。 如果是在开发私有的扩展,并且想只在你的其他工程中共享时,这样做是很有用的。

通过 Composer 安装的扩展会存放在 BasePath/vendor 目录下,这里的 BasePath 指你的应用的 base path。因为 Composer 还是一个依赖管理器,当它安装一个包时, 也将安装这个包所依赖的所有软件包。

例如想安装 yiisoft/yii2-imagine 扩展,可按如下示例修改你的 composer.json 文件:

{  // ...  "require": {    // ... other dependencies    "yiisoft/yii2-imagine": "*"  }}

安装完成后,你应该能在 BasePath/vendor 目录下见到 yiisoft/yii2-imagine 目录。你也应该 见到另一个 imagine/imagine目录,在其中安装了所依赖的包。

信息: yiisoft/yii2-imagine 是 Yii 由开发团队维护一个核心扩展, 所有核心扩展均由 Packagist 集中管理,命名为yiisoft/yii2-xyz,其中的 xyz, 不同扩展有不同名称。
现在你可以使用安装好的扩展了,好比是应用的一部分。如下示例展示了如何使用 yiisoft/yii2-imagine 扩展 提供的yii/imagine/Image 类:

use Yii;use yii/imagine/Image;// 生成一个缩略图Image::thumbnail('@webroot/img/test-image.jpg', 120, 120)  ->save(Yii::getAlias('@runtime/thumb-test-image.jpg'), ['quality' => 50]);

信息: 扩展类由 Yii class autoloader 自动加载。
手动安装扩展

在极少情况下,你可能需要手动安装一部分或者全部扩展,而不是依赖 Composer。 想做到这一点,你应当:

下载扩展压缩文件,解压到 vendor 目录。
如果有,则安装扩展提供的自动加载器。
按指导说明下载和安装所有依赖的扩展。
如果扩展没有提供类的自动加载器,但也遵循了 PSR-4 standard 标准,那么你可以使用 Yii 提供的类自动加载器来加载扩展类。 你需要做的仅仅是为扩展的根目录声明一个 root alias。 例如,假设在 vendor/mycompany/myext 目录中安装了一个扩展,并且扩展类的命名空间为 myext , 那么你可以在应用配置文件中包含如下代码:

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表