Yii2.0依赖注入例子 [ 1.0 版本 ]
写个依赖注入的例子,还请各位大牛多多指点:
四个文件:
1(bacend\controllers\SitController.php)框架自带的一个控制器
2 (common\DIClass.php) 依赖注入类 - (依赖注入的实例类必须要实现接口),也就是依赖注入的类型
3 (common\Marks) 接口实现类
4 (common\MarkInterface) 接口
SitController.php (code)
public function actionLogin(){
//啊,例子就直接写在SiteController的Login方法里吧。。。大家都知道这个
$quantity = new \common\DIClass($this->_class('makrs'));
$name = $quantity->getName('小小虾');
$age = $quantity->getAge(25);
echo $name."--".$age;die;
}
//一个工厂制造方法,这里可以通过switch case 来返回不同的实例
private function _class($class){
//switch($class){case 'marks':return new \common\Marks();}
return new \common\Marks(); //这里带上命名空间是为了让大家明白调用的哪个文件。
}
DIClass.php (code)
<?php
/**
* 该类是依赖注入类
*/
namespace common;
/**
*
* 类的对象通过外部注入,
* 注入的对象必须是实现 MarksInterface 接口 类的实例
* @author zhanghongbo
*/
class DIClass {
//put your code here
private $_strategy = null;
public function __construct(MarksInterface $type) {
$this->_strategy = $type;
}
/**
* 定义接口
*/
public function getName($data){
return $this->_strategy->getName($data);
}
/**
* 定义接口
*/
public function getAge($data){
return $this->_strategy->getAge($data);
}
}
Marks.php (code)
<?php
namespace common;
/**
* 定义类实现接口的方法
*
* @author
*/
class Marks implements MarksInterface{
//put your code here
public function getName($name){
return "Yii2.0开发者:".$name;
}
public function getAge($age){
return "今年已经:".$age."岁了!";
}
}
MarkInterface.php (code)
<?php
/*
* 接口
*/
namespace common;
/**
*
* @author
*/
interface MarksInterface {
//put your code here
public function getName($data);
public function getAge($data);
}
最终输出结果:
Yii2.0开发者:小小虾--今年已经:25岁了!
灰太狼
注册时间:2016-11-19
最后登录:2023-07-14
在线时长:76小时17分
最后登录:2023-07-14
在线时长:76小时17分
- 粉丝28
- 金钱3290
- 威望150
- 积分5550
热门源码
- 基于 Yii 2 + Bootstrap 3 搭建一套后台管理系统 CMF
- 整合完 yii2-rbac+yii2-admin+adminlte 等库的基础开发后台源码
- 适合初学者学习的一款通用的管理后台
- yii-goaop - 将 goaop 集成到 Yii,在 Yii 中优雅的面向切面编程
- yii-log-target - 监控系统异常且多渠道发送异常信息通知
- 店滴云1.3.0
- 面向对象的一小步:添加 ActiveRecord 的 Scope 功能
- Yii2 开源商城 FecShop
- 基于 Yii2 开发的多店铺商城系统,免费开源 + 适合二开
- leadshop - 基于 Yii2 开发的一款免费开源且支持商业使用的商城管理系统
共 0 条评论