Yii 扩展分类
- 模块化
- 事件机制
- MixIN (混合、多重继承)
- 依赖注入
模块化技术
模块化:通过对业务详细拆分,分化出不同的小模块,
可以通过思维导图进行梳理
系统加载模块时通过配置文件进行控制,若模块暂不可用可于配置中标明以通知系统模块暂不可用
使用 Gii 的 Module Generator
模块化实现:
1、父级模块化(1级)
通过gii的modules生成对应的子模块(2级),
然后修改config.php中的web.php的配置信息,添加以下信息(例子):
‘modules’=>[‘article’=>’app/modules/article/Article’]
访问方式,例如:localhost/basic/index.php?r=article/default/index
2、2级模块化(1级),类推
通过gii的modules生成对应的子模块(3级),
然后修改该模块下的.php配置信息,添加以下信息(例子):
在actionInit中添加如下信息:
$this->modules = [‘category’=>[‘class’=>’app/modules/article/modules/test/Test’]];
访问方式,例如:localhost/basic/index.php?r=article/test/default/index
事件机制
<?php
namespace app\controllers;
use yii\web\Controller;
use vendor\animal\Cat;
use vendor\animal\Mourse;
use vendor\animal\Dog;
use \yii\base\Event;
class AnimalController extends Controller
{
public function actionIndex(){
$cat = new Cat();
$cat2 = new Cat();
$mourse = new Mourse();
$dog = new Dog();
/*
//案例一
//实现猫叫,老鼠跑绑定事件,dog关注
$cat->on(‘miao’,[$mourse,’run’]); //on()方法来自于Componment,on()方法实现绑定事件
//猫叫的时候给老鼠传递一些参数信息
$cat->on('miao',[$dog,'look']);//dog关注cat的miao
#-/
/
//案例二
//实现猫叫,老鼠跑绑定事件,dog关注后,取消关注
$cat->on(‘miao’,[$mourse,’run’]); //on()方法来自于Componment,on()方法实现绑定事件
//猫叫的时候给老鼠传递一些参数信息
$cat->on('miao',[$dog,'look']);//dog关注cat的miao
$cat->off('miao',[$dog,'look']);//dog取消关注cat的miao
#—*/
MixIn
Behavior