组件包括 : DB
session
cookie
cache
log
DI (依赖注入)
GII
组件在config\web.php中的components中配置,这里已经存在的组件是YII2.0的核心组件,在application运行的时候就已经加载好了,可以再vendor\yiisoft\yii2\base\Application.php中的coreComponents()方法中
public function coreComponents()//内核的组件 { return [ 'log' => ['class' => 'yii\log\Dispatcher'], 'view' => ['class' => 'yii\web\View'], 'formatter' => ['class' => 'yii\i18n\Formatter'], 'i18n' => ['class' => 'yii\i18n\I18N'], 'mailer' => ['class' => 'yii\swiftmailer\Mailer'], 'urlManager' => ['class' => 'yii\web\UrlManager'], 'assetManager' => ['class' => 'yii\web\AssetManager'], 'security' => ['class' => 'yii\base\Security'], ]; }创建一个自己的组件
在basic下创建文件夹component并创建1个php文件 Arrey.php 制作一个简单的功能
<?php //这里的componnet是文件夹的名字, //文件夹名是components那么命名空间就是app\components //文件夹名是hello那么命名空间就是app\hello namespace app\components; class Arrey{ public function unique($data){ return array_unique($data); } }然后在config/web.php中的components中添加配置
在controllers文件夹下创建控制器DataController.php
<?php namespace app\controllers; use yii\web\Controller;class DataController extends Controller{public function actionTest(){$data=[2,2,3,4,5,5,5,6,7,2,1,]; echo"<pre>"; //arr是组件名字,unique是这个组件下的unique方法 echo json_encode(\Yii::$app->arr->unique($data)) ; //把arr组件的属性打印出来 echo \Yii::$app->arr->name; } }