您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
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对象