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

1. 内部组件
Yii 2.0 框架中有很多内部组件,如: db(数据库)、s ession、c ookie、g ii、 cache( 缓存)、l og、 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,测试组件的调用,内容如下:
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 '
';

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

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

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

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

你可能感兴趣的:(Yii,Yii,2.0,框架学习笔记)