溫馨提示×

溫馨提示×

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

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

Yii框架中應用組件操作的示例分析

發(fā)布時間:2021-08-12 11:29:09 來源:億速云 閱讀:104 作者:小新 欄目:開發(fā)技術

這篇文章主要介紹了Yii框架中應用組件操作的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

具體如下:

所有的組件都應聲明在config/web.php

//組件聲明在該數(shù)組下
'components'=>array(
  //自定義組件1 - 函數(shù)形式
  'customComponent1' => function(){
    $custom = new app\components\CustomComponent\realization\CustomComponent1();
    $custom->setName('譚勇');
    $custom->setAge(22);
    return $custom;
  },
  //自定義組件2 - 數(shù)組形式
  'customComponent2' => array(
      'class' => 'app\components\CustomComponent\relazation\CustomComponent2'
      'name'  => '譚勇',
      'age'  => 22
  ),
  //自定義組件 - 字符串形式
  'customComponent3' => 'app\components\CustomComponent\realization\CustomComponent3'
),

如果只是在components 中聲明了該組件,那么只有在首次調用的時候才會實例化這個組件,之后調用都會復用之前的實例。 如果你在bootstrap 數(shù)組中聲明了這個組件,那么該組件會隨著應用主體的創(chuàng)建而實例(也就是默認會被實例,而不是首次調用才會實例這個組件)。

//默認加載customComponent1 和 customComponent2 組件
'bootstrap' => array(
  'customComponent1','customComponent2'
),

在應用目錄下創(chuàng)建 components 目錄

組件 CutomComponent

接口類 app\components\CustomComponent\CustomComponent;

<?php
  namespace app\components\CustomComponent;
  interface CustomComponent
  {
    public function setName($name);
    public function setAge($age);
    public function getName();
    public function getAge();
  }
?>

接口實現(xiàn)類 app\components\CustomComponent\realization\CustomComponent1

<?php
  namespace app\components\CustomComponent\realization;
  use app\components\CustomComponent\CustomComponent;
  class CustomComponent1 implments CustomComponent
  {
    public $name='勇哥';
    public $age = '我的年齡';
    public function setName($name)
    {
      $this->name = $name;
    }
    public function getName()
    {
      return $this->name;
    }
    public function setAge($age)
    {
      $this->age = $age;
    }
    public function getAge()
    {
      return $this->age;
    }
  }
?>

customComponent2,customComponent3 我們都讓他們與customComponent1 具有相同的代碼。 那么我們怎么去調用這些組件呢?

namespace app\controllers\home;
use Yii;
use yii\web\Controller;
class IndexController extends Controller
{
  public function actionIndex()
  {
    //組件customComponent1
    echo Yii::$app->customComponent1->getName();
    //組件customComponent2
    echo Yii::$app->customComponent2->getName();
    //組件customComponent3
    echo Yii::$app->customComponent3->getName();
  }
}

然后回過頭看數(shù)組形式、函數(shù)形式、字符串形式的組件

//函數(shù)形式  -  這個很容易理解 實例化后設置屬性值
function(){ 
    $custom = new app\components\CustomComponent\realization\CustomComponent1();
    $custom->setName('譚勇');
    $custom->setAge(22);
    return $custom;
  },
//數(shù)組形式 - 它會實例化這個組件 之后設置屬性值 注意這里設置屬性值的方法 和 函數(shù)不一樣,它是 $custom->name = '譚勇' , $custom->age = 22
array(
      'class' => 'app\components\CustomComponent\relazation\CustomComponent2'
      'name'  => '譚勇',
      'age'  => 22
  ),
//字符串形式 只知道會實例化這個組件,怎么注入屬性值,這個不清楚支不支持

組件有什么作用?

如果你理解Java spring mvc 那么就不難理解組件的作用 可以作為服務層,數(shù)據(jù)訪問層等等

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Yii框架中應用組件操作的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業(yè)資訊頻道,更多相關知識等著你來學習!

向AI問一下細節(jié)

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

yii
AI