一、 單例模式
顧名思義, 單例模式就是只例項一次,通過乙個介面去實現多處需要的同一類物件的需求。
例子:
1public
function __construct($config =)
2
2、 工廠模式(策略模式)
顧名思義,工廠模式就是像工廠的機器化一樣取構造當前web應用所需的類物件。
例子:
1public
static
function createobject($type, array
$params =)
2 elseif (is_array($type) && isset($type['class'])) elseif (is_callable($type, true
)) elseif (is_array($type
)) 14
15throw
new invalidconfigexception('unsupported configuration type: ' . gettype($type
));16 }
這是yii2底層的工廠化類物件介面,通過第三方**取實現當前web應用的工廠化模式。yii2引入的php底層預定義介面類,refectionclass對映類,通過對映取工廠化類物件。
3.、註冊模式
顧名思義,註冊模式則是通過一基類介面給基類的乙個全域性屬性,新增不同的元件物件。
例子:
1public
function set($id, $definition)2
910if (is_object($definition) || is_callable($definition, true
)) elseif (is_array($definition
)) else
20 } else
23 }
這是yii2中間類服務定位器,實現不同應用元件的註冊。
1public
function get($id, $throwexception = true)2
67if (isset($this->_definitions[$id
]))
1213
return
$this->_components[$id] = yii::createobject($definition
);14 } elseif ($throwexception
) 17
18return
null
;19 }
這是應用元件的獲取。
1/**2* returns the database connection component.
3* @return \yii\db\connection the database connection.4*/
5public
function
getdb()69
10/**11
* returns the log dispatcher component.
1213
*/14
public
function
getlog()
1518
19/**20
* returns the error handler component.
2122
*/23
public
function
geterrorhandler()
2427
28/**29
* returns the cache component.
3031
*/32
public
function
getcache()
3336
37/**38
* returns the formatter component.
3940
*/41
public
function
getformatter()
4245
46/**47
* returns the request component.
48* @return \yii\web\request|\yii\console\request the request component.
49*/
50public
function
getrequest()
5154
55/**56
* returns the response component.
57* @return \yii\web\response|\yii\console\response the response component.
58*/
59public
function
getresponse()
60
4.、組裝模式
未完待續。。。。。。
Yii2 設計模式 簡單工廠模式
除了使用 new 操作符之外,還有更多的製造物件的方法。你將了解到例項化這個活動不應該總是公開進行,也會認識到初始化經常造成 耦合 問題。yii db mysql schema 中 建立 querybuilder 例項 public function createquerybuilder 這裡使用了...
yii2框架 yii2的主題化設計 十九
最近發現漏了很重要的一章章節知識點 關於yii2的主題化設計。所謂的主題話設計簡單點說就是通過設定不同的模板主題,可以快速切換,無需更改檢視渲染 的方法。在yii2中使用主題,首先要配置主題,在components中 view theme baseurl web themes blue pathma...
yii2框架 yii2自身的自動載入 三
上一節說完了composer的自動載入,下面我們來說一下yii2自身的自動載入。在我們的入口檔案,例如index.php,如下 comment out the following two lines when deployed to production defined yii debug or d...