05. Yii 2.0 的内部组件和自定义组件

本文介绍如何在Yii2.0框架中创建及使用自定义组件,并通过实例演示了组件的注册与调用过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 内部组件
Yii 2.0 框架中有很多内部组件,如:db(数据库)、session、cookie、gii、cache(缓存)、log、DI(依赖注入)等。

2. 自定义组件
以 Yii 2.0 基础版为例,高级版类似。
在 basic 目录下新建一个组件目录 components 作为自定义的组件目录,它与控制器目录同级。
在 basic/components 目录下新建一个自定义组件的类文件 ArrayCom.php,内容如下:
port;
    }
}
?>
然后,在 basic/config/web.php 中的 $config 中的 components 所指向的数组中,注册自定义的组件,即添加如下的键值对:
// 使用配置数组,注册自定义组件 arr
'arr' => [
    'class'    => 'app\components\ArrayCom',    // 组件名称 arr 所指向的类文件
    'port'    => '3309',    // 自定义组件的属性,在控制器的方法中这样访问属性 port 的值,\Yii::$app->arr->port
],
最后,在 控制器层,新建一个控制器 ComController.php,测试组件的调用,内容如下:
<?php
namespace app\controllers;
use yii\web\Controller;

class ComController extends Controller
{    
    public function actionIndex(){
        $array = array(1,2,3,4,3,2,3,5);
        // 调用组件 arr 中的方法
        $res = \Yii::$app->arr->unique($array);

        var_dump($res);
        echo '<hr>';

        // 访问组件 arr 的属性
        echo \Yii::$app->arr->port;

        echo '<hr>';
        echo \Yii::$app->arr->getPort();
    }
}
?>

在浏览器地址栏,输入:http://basic.com/com/index,可以查看到对应的效果。

总结:
  • 对于某些需要经常用到的类,如:短信发送类、redis操作类、AES加密类等等,我们都可以按照类似的方式将其封装为自定义组件,便于多次调用。
  • 注册组件的方式,除了可以用配置数组进行注册外,还可以使用类名或函数的方式进行注册,详情可参考 Yii 2.0 手册的应用组件部分。
  • 请谨慎注册太多组件, 组件就像全局变量, 注册太多可能加大测试和维护的难度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值