亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

使用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

瓮安县| 嘉义市| 淳化县| 孝义市| 修武县| 大余县| 锡林郭勒盟| 乐陵市| 西城区| 永川市| 九台市| 金阳县| 鄂托克前旗| 阜康市| 通许县| 长武县| 靖州| 榆树市| 枣庄市| 新和县| 务川| 嘉定区| 赤水市| 莎车县| 武威市| 荃湾区| 庄浪县| 安岳县| 连州市| 沂水县| 万全县| 镇原县| 遂宁市| 泉州市| 武安市| 札达县| 平邑县| 吕梁市| 龙里县| 阳原县| 石狮市|