介绍
这期内容当中小编将会给大家带来有关使用Yii框架怎么模拟组件调用注入,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
Yii中组件只有在被调用的时候才会被实例化,且在当前请求中之后调用该组件只会使用上一次实例化的实例,不会重新生成该实例。
& # 39;组件# 39;,,=祝辞,阵列( & # 39;才能组件调用名& # 39;,,=祝辞,,& # 39;组件调用命名空间& # 39;, & # 39;才能组件调用名& # 39;,,=祝辞,阵列( ,,,,,& # 39;类# 39;,=祝辞,& # 39;组件调用命名空间& # 39; ,,); & # 39;才能组件调用名& # 39;,,=祝辞,函数(){ ,,,return new & # 39;组件调用命名空间& # 39;; ,,} )
一个类似的小组件,可以实现上述功能。方便我们存储服务功能组件。
& lt; php ? namespace 应用程序组件\ \服务;/* * ,*自定义服务层调用组件 ,*支持,的实例模式只有yii模式的string 和,array 模式 ,*例子 ,* services =祝辞,阵列( ,*,,& # 39;customservice # 39;,=祝辞,阵列( *,,,,,,,,& # 39;类# 39;,=祝辞,& # 39;应用程序组件\ \定制\定制# 39;, *,,,,,,,,& # 39;名字# 39;,=祝辞,& # 39;我是勇哥& # 39; *,,,,,,), ,*) ,*/class 服务 { private 才能;dataObj 美元;=,数组(); private 才能;classes 美元;=,数组(); public 才能;function  __set(名字,美元价值) {才能 ,,,这个→美元类[名字]美元,=,美元价值; ,,} public 才能;function  __get(名称) {才能 ,,,如果(!收取($ this→dataObj[名字]美元),| |,$ this→dataObj[名字]美元,==,null) ,,,{ ,,,,,classInfo 美元;=,$ this→类[名字]美元; ,,,,,这个→美元dataObj[名字]美元,=,is_array (classInfo美元),?,(new classInfo美元[& # 39;类# 39;]),:,(new classInfo美元); ,,,,,如果(is_array (classInfo美元)) ,,,,,,,foreach (classInfo 美元;as 美元=祝辞;b)美元 ,,,,,,,,,如果(a 美元;!=,& # 39;类# 39;) ,,,,,,,,,,,这个→美元dataObj[名字]美元→a 美元;=,b美元; ,,,} ,,,return $ this→dataObj[名字]美元; ,,} }
web。php
& # 39;组件# 39;=祝辞阵列( & # 39;才能服务# 39;,=祝辞,阵列( ,,,& # 39;类# 39;,,=祝辞,,& # 39;应用程序组件\ \ \服务# 39;服务, ,,,//自定义服务,custom1 ,,,& # 39;custom1Service& # 39;,=祝辞,阵列( ,,,,,& # 39;类# 39;,=祝辞,& # 39;应用\ \ Custom1 \ Custom1& # 39;服务, ,,,,,//需要注入的属性值 ,,,,,& # 39;名字# 39;,,=祝辞,& # 39;我是勇哥& # 39;, ,,,,,& # 39;年龄# 39;,,=在22 ,,,), ,,,//自定义服务,custom2 ,,,& # 39;custom2Service& # 39;,=祝辞,阵列( ,,,,,& # 39;类# 39;,=祝辞,& # 39;应用\ \ Custom2 \ Custom2& # 39;服务, ,,,,,//需要注入的属性值 ,,,,,& # 39;名字# 39;,,=祝辞,& # 39;我是勇哥& # 39;, ,,,,,& # 39;年龄# 39;,,=在22 ,,,), ,,) )
控制层调用
& lt; php ? namespace 应用\控制器\回家; use , Yii; use , yii \ web \控制器; class IndexController  extends 控制器 { public 才能;function  actionIndex () {才能 ,,,echo Yii:应用程序→美元服务→custom1Service→名称; ,,} }
上述就是小编为大家分享的使用Yii框架怎么模拟组件调用注入了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。