您好,登錄后才能下訂單哦!
這篇文章主要介紹了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è)資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。