国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Yii源碼解讀-別名

banana_pi / 2265人閱讀

摘要:設(shè)置別名的目的特殊的變量常量保存整個(gè)應(yīng)用的所有別名。別名的解析過程先按根別名找到可能保存別名的分支。別名必然以打頭。別名解析時(shí),優(yōu)先匹配較長(zhǎng)的別名。使用別名時(shí),要將別名放在最前面,不能放在中間。

Alias

設(shè)置別名的目的:特殊的變量常量

yiiBaseYii::$aliases保存整個(gè)Yii應(yīng)用的所有別名。

yiiaseApplication的構(gòu)造函數(shù)__construct()中調(diào)用preInit方法,該方法預(yù)定義了5個(gè)別名:

@app , @vendor @bower @npm , @runtime 

在Web應(yīng)用,yiiaseWebApplication中又定義了2個(gè)別名:

@webroot @web 

最后一個(gè)藏有別名的地方:

@verdor/yiisoft/extensions.php

這一部分的別名會(huì)在yiiaseApplication::bootstrap()中注冊(cè)完成。

定義與解析別名

Yii::$aliases[]來保存別名

Yii::setAlias("@alias", "path")來定義別名。

這個(gè)定義的本質(zhì)是:BaseYii::setAlias()

Yii::getAlias()來調(diào)用別名。

別名的解析過程

先按根別名找到可能保存別名的分支。

遍歷這個(gè)分支下的所有樹葉,優(yōu)先匹配長(zhǎng)別名。

將找到的最長(zhǎng)匹配別名替換成其所對(duì)應(yīng)的值,再接上 @alias 的后半截,成為新的別名。

Summary

別名需在使用前定義,因此通常來講,定義別名應(yīng)當(dāng)在放在應(yīng)用的初始化階段。

別名必然以 @ 打頭。

別名的定義可以使用之前已經(jīng)定義過的別名。

別名在儲(chǔ)存時(shí),至多只分成兩級(jí),第一級(jí)的鍵是根別名。 第二級(jí)別名的鍵是完整的別名,而不是去除根別名后剩下的所謂的“二級(jí)”別名。

Yii通過分層的樹結(jié)構(gòu)來保存別名最主要是為高效檢索作準(zhǔn)備。

很多地方可以直接使用別名,而不用調(diào)用 Yii::getAlias() 轉(zhuǎn)換成真實(shí)的路徑或URL。

別名解析時(shí),優(yōu)先匹配較長(zhǎng)的別名。

Yii預(yù)定義了許多常用的別名供編程時(shí)使用。

使用別名時(shí),要將別名放在最前面,不能放在中間。

參考

http://www.digpage.com/convention.html

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/21433.html

相關(guān)文章

  • Yii源碼解讀-依賴注入(容器)

    摘要:在中使用解耦,有兩種注入方式構(gòu)造函數(shù)注入屬性注入。對(duì)象的實(shí)例化解析依賴信息該方法實(shí)質(zhì)上就是通過的反射機(jī)制,通過類的構(gòu)造函數(shù)的參數(shù)分析他所依賴的單元。 有關(guān)概念 依賴倒置原則(Dependence Inversion Principle, DIP) 傳統(tǒng)軟件設(shè)計(jì)中,上層代碼依賴于下層代碼,當(dāng)下層出現(xiàn)變動(dòng)時(shí),上層也要相應(yīng)變化。 DIP的核心思想是:上層定義接口,下層實(shí)現(xiàn)這個(gè)接口,從而使的下...

    Prasanta 評(píng)論0 收藏0
  • Swoft 源碼解讀

    摘要:官網(wǎng)源碼解讀號(hào)外號(hào)外歡迎大家我們開發(fā)組定了一個(gè)就線下聚一次的小目標(biāo)里面的框架算是非常重的了這里的重先不具體到性能層面主要是框架的設(shè)計(jì)思想和框架集成的服務(wù)讓框架可以既可以快速解決很多問題又可以輕松擴(kuò)展中的框架有在應(yīng)該無出其右了這次解讀的源碼 官網(wǎng): https://www.swoft.org/源碼解讀: http://naotu.baidu.com/file/8... 號(hào)外號(hào)外, 歡迎大...

    weij 評(píng)論0 收藏0
  • Yii源碼解讀 - 事件

    摘要:事件的綁定和解除對(duì)事件進(jìn)行綁定和解綁。使用全局函數(shù)作為來進(jìn)行綁定使用對(duì)象的成員函數(shù)來進(jìn)行綁定使用類的靜態(tài)成員函數(shù)進(jìn)行綁定使用匿名函數(shù)上面的數(shù)組是用來維護(hù)事件數(shù)組。事件的級(jí)別類級(jí)別事件類級(jí)別事件用于響應(yīng)所有類實(shí)例的事件。 Yii基礎(chǔ) 事件 event 使用事件,可以在特定的時(shí)點(diǎn),觸發(fā)執(zhí)行預(yù)先設(shè)定的一段代碼,事件既是代碼解耦的一種方式,也是設(shè)計(jì)業(yè)務(wù)流程的一種模式。 事件的相關(guān)要素 這是一...

    AaronYuan 評(píng)論0 收藏0
  • Yii源碼解讀-屬性

    摘要:成員變量可以視為一個(gè)可讀可寫沒有任何預(yù)處理或后處理的屬性。而成員變量由于外部不可見,與屬性外的特性不相符,所以不能視為屬性。在一些表示數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)集合等簡(jiǎn)單情況下,且不需讀寫控制等,可以考慮使用成員變量作為屬性,這樣可以提高一點(diǎn)效率。 Yii基礎(chǔ) 屬性 property 屬性用于表征類的狀態(tài),從訪問的形式上看,屬性與成員變量沒有區(qū)別。但是,成員變量是就類的結(jié)構(gòu)構(gòu)成而言的概念,而屬性是就...

    instein 評(píng)論0 收藏0
  • Yii源碼解讀-類自動(dòng)加載

    摘要:實(shí)現(xiàn)的類自動(dòng)加載,依賴于的,注冊(cè)一個(gè)自己的自動(dòng)加載函數(shù),并插入到自動(dòng)加載函數(shù)棧的最前面,確保的會(huì)被最先調(diào)用。首先加載第三方的,再加載的。最后加載的,這樣可以保證的優(yōu)先加載。 實(shí)現(xiàn) Yii的類自動(dòng)加載,依賴于PHP的spl_autoload_register(), 注冊(cè)一個(gè)自己的自動(dòng)加載函數(shù)(autoloader),并插入到自動(dòng)加載函數(shù)棧的最前面,確保Yii的autoloader會(huì)被最先...

    Jeffrrey 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<