本文实例讲述了yii框架模拟组件调用注入。分享给大家供大家参考,具体如下:
yii 中组件只有在被调用的时候才会被实例化,且在当前请求中之后调用该组件只会使用上一次实例化的实例,不会重新生成该实例。
'components' => array( '组件调用名' => '组件调用命名空间', '组件调用名' => array( 'class' => '组件调用命名空间' ); '组件调用名' => function(){ return new '组件调用命名空间'; })
一个类似的小组件,可以实现上述功能。方便我们存储服务功能组件。
<?phpnamespace app\components\rvices;/** * 自定义服务层调用组件 * 支持 的实例模式只有yii模式的string 和 array 模式 * 例子 * rvices => array( * 'customrvice' => array(* 'class' => 'app\components\custom\custom',* 'name' => '我是勇哥'* qq音乐榜 ), * ) */class rvices{ private $dataobj = array(); private $class = array(); public function __t($name,$value) { $this->class[$name] = $value; } public function __get($name) { if(!ist($this->dataobj[$name]) || $this->dataobj[$name] == null) { $classinfo = $this->class[$name]; 正太分布$this->dataobj[$name] = is_array($classinfo) ?中国担当 (new $classinfo['class']) : (new $classinfo); if(is_array($classinfo)) foreach($classinfo as $a=>$b) if($a != 'class') $this->dataobj[$name]->$a = $b; } return $this->dataobj[$name]; }}
web.php
'components'=>array( 'rvices' => array( 'class' =>护理学校招生; 'app\components\rvices\rvices', //自定义服务 custom1 'custom1rvice' => array( 'class' => 'app\rvices\custom1\custom1', //需要注入的属性值 'name' => '我是勇哥', 'age' => 22 ), //自定义服务 custom2 'custom2rvice' => array( 'class' => 'app\rvices\custom2\custom2', //需要注入的属性值 'name' => '我是勇哥', 'age' => 22 ), ))
控制层调用
<?phpnamespace app\controllers\home;u yii;u yii\web\controller;class indexcontroller extends controller{ public function actionindex() { echo yii::$app->rvices->custom1rvice-&三国杀荀彧台词gt;name; }}
本文发布于:2023-04-08 05:50:45,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/feef3227126194eee2f6d9805be451f1.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:Yii框架模拟组件调用注入示例.doc
本文 PDF 下载地址:Yii框架模拟组件调用注入示例.pdf
留言与评论(共有 0 条评论) |