您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
4-3 YII行为之对象混合
发布时间:2023-04-29 16:21:06编辑:雪饮阅读()
-
对于对象而言混合就更简单了,普通类只需要继承use yii\base\Component,而不用定义behaviors。
一个简单的普通类:D:\phpstudy_pro\WWW\www.xyyii.com\basic\vendor\animal\Dog.php
<?php
namespace vendor\animal;
use yii\base\Component;
class Dog extends Component {
public function look(){
echo 'i am looking!';
}
}
行为类和上篇的可以说是完全一样了D:\phpstudy_pro\WWW\www.xyyii.com\basic\behaviors\Behavior1.php
<?php
namespace app\Behaviors;
use yii\base\Behavior;
class Behavior1 extends Behavior{
public $height;
public function eat(){
echo "dog eat";
}
public function events()
{
return [
"say"=>"func_say"
];
}
public function func_say(){
echo "wang wang wang";
}
}不过比之类的混合而言,对象的混合是有支持对象注入时候配置注入标记,作用于注入的对象可以被移除注入,就是利用该注入标记进行移除的,那么当然的注入的对象被移除了,则对应的方法肯定也就不能调用了。控制器如:
D:\phpstudy_pro\WWW\www.xyyii.com\basic\controllers\HelloController.php:
<?php
namespace app\controllers;
use app\Behaviors\Behavior1;
use vendor\animal\Dog;
use yii\web\Controller;
class HelloController extends Controller{
public $layout='common';
public function actionIndex(){
$dog=new Dog();
//对象注入到普通对象中
$dog->attachBehavior('beh1',new Behavior1());
$dog->eat();
echo "<hr/>";
//对象移除于普通对象中
$dog->detachBehavior("beh1");
try{
$dog->eat();
}
catch(\Exception $e){
print_r("发生了错误:".$e->getMessage());
}
}
}
关键字词:对象,混合
上一篇:4-2 YII行为之类混合
下一篇:5-2 YII依赖注入之容器
相关文章
- 14_JSON_解析器Jackson_json转Java对象
- 13_JSON_解析器Jackson_java对象转json_List&Map(Hash
- 11_JSON_解析器Jackson_java对象转json
- 14_EL_empty运算符&隐式对象pageContext(empty与not e
- 12_EL_获取域中存储的值_对象值(对象值、对象属性值(通
- 06_JSP_内置对象(pageContext对象)
- 18_ServletContext_功能_域对象(全局)
- 17_Request_共享数据(域对象)
- 13_xml_解析_Jsoup_Element对象
- 12_xml_解析_Jsoup_Document对象