扩展的使用
- Yii的扩展下载
- 解压到应用程序基目录的子目录
- 导入配置和使用扩展(每个扩展都有唯一标识 不同扩展有着不同的导入配置)、
应用部件:添加一个新条目到应用配置(请求处理中的执行上下文) 的组件属性
return array(
'component'=>array(
’xyz'=>array(
'calss'=>'aplication.extensions.xyz.XyzClass',
'property1'=>'value1',
'property2'=>'value2',
),
),
);
组件:主要在views里 ,假设组件类XyzClass 属于xyz扩展 我们可以这么用:
// 组件不需要主体
<?php
$this->widget('application.extensions.xyz.XyzClass',array(
'property1'=>'value1',
'property2'=>'value2'
));
?>
// 组件可以包含主体内容
<?php $this->bgeinwidget(
'application.extensions.xyz.XyzClass',
array(
'property1'=>value1,
'property2'=>value2
));
?>
......................组件的主体内容.......................
<?php $this->endWidget();?>
动作: 动作被controller用于响应指定的用户请求
class TestController extends CController{
public function actions(){
return array(
'xyz'=>array(
' class'=>'application.extensions.xyz.XyzClass',
'property1'=>value1,
'property2'=>value2
),
);
}
}
过滤器: 也是被controller使用, 过滤器主要用于被动作挂起是预处理用户请求,可以在控制器中重写filter
class TestController extends CController{
public function filters(){
return array(
'xyz'=>array(
'class'=>'application.extensions.xyz.XyzClass',
'property1'=>value1,
'property2'=>value2
),
);
}
/*可以在数组的第一个元素里使用加号或者减号操作符来限定过滤器只在哪些动作中生效*/
控制器: 提供一套可以被用户请求的动作 ,注: 我们需要在应用配置里面设置CWebApplication::controllerMap属性,才能在控制器里面使用的扩展
return array(
'controllerMap'=>array('
'xyz'=>array(
'class'=>'application,extension.xyz.XyzClass',
'property1'=>'value1',
'property2'=>'value2',
),
)
);
校验器: 主要在views类中
class MyMode extends CActiveRecord // OR CFormModel;{
public function rules(){
return array(
arry(
'str1,str2'
'application,extension.xyz.XyzClass',
'property1'=>'value1',
'property2'=>'value2',
),
);
}
}
控制台命令:控制台命令扩展常用一个额外命令来增强yiiC的功能
return array(
'commandMap'=>array(
'xyz'=>array(
'class'=>'application,extension.xyz.XyzClass',
'property1'=>'value1',
'property2'=>'value2',
),
),
);
模块:通常由多个类文件组成。
通用部件:使用前先通过
Yii::import('application.extensions.xyz.XyzClass');
来包含它的类文件。然后可以创建他的实例配置属性等还可以调用方法等等。
Yii::import('application.extensions.xyz.XyzClass');