91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Yii框架怎么模擬組件調用注入

發布時間:2021-04-13 16:10:37 來源:億速云 閱讀:102 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關使用Yii框架怎么模擬組件調用注入,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

yii 中組件只有在被調用的時候才會被實例化,且在當前請求中之后調用該組件只會使用上一次實例化的實例,不會重新生成該實例。

'components'  => array(
  '組件調用名'  =>  '組件調用命名空間',
  '組件調用名'  => array(
      'class' => '組件調用命名空間'
  );
  '組件調用名'  => function(){
    return new '組件調用命名空間';
  }
)

一個類似的小組件,可以實現上述功能。方便我們存儲服務功能組件。

<?php
namespace app\components\Services;
/**
 * 自定義服務層調用組件
 * 支持 的實例模式只有yii模式的string 和 array 模式
 * 例子
 * services => array(
 *   'customService' => array(
*        'class' => 'app\components\Custom\Custom',
*        'name' => '我是勇哥'
*      ),
 * )
 */
class Services
{
  private $dataObj = array();
  private $classes = array();
  public function __set($name,$value)
  {
    $this->classes[$name] = $value;
  }
  public function __get($name)
  {
    if(!isset($this->dataObj[$name]) || $this->dataObj[$name] == null)
    {
      $classInfo = $this->classes[$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(
  'services' => array(
    'class'  =>  'app\components\Services\Services',
    //自定義服務 custom1
    'custom1Service' => array(
      'class' => 'app\services\Custom1\Custom1',
      //需要注入的屬性值
      'name'  => '我是勇哥',
      'age'  => 22
    ),
    //自定義服務 custom2
    'custom2Service' => array(
      'class' => 'app\services\Custom2\Custom2',
      //需要注入的屬性值
      'name'  => '我是勇哥',
      'age'  => 22
    ),
  )
)

控制層調用

<?php
namespace app\controllers\home;
use Yii;
use yii\web\Controller;
class IndexController extends Controller
{
  public function actionIndex()
  {
    echo Yii::$app->services->custom1Service->name;
  }
}

上述就是小編為大家分享的使用Yii框架怎么模擬組件調用注入了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

yii
AI

南乐县| 汝州市| 正蓝旗| 英超| 青岛市| 措勤县| 永寿县| 宜宾市| 镇沅| 常熟市| 岑巩县| 开封县| 闸北区| 德阳市| 长海县| 日喀则市| 柳州市| 达拉特旗| 鄂温| 灌云县| 洛川县| 浦东新区| 婺源县| 博湖县| 交口县| 广德县| 余江县| 临朐县| 永靖县| 富蕴县| 新宾| 云南省| 郁南县| 高唐县| 石首市| 全南县| 霍林郭勒市| 探索| 沅陵县| 枞阳县| 玉龙|