成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Yii源碼解讀-別名

banana_pi / 2325人閱讀

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

Alias

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

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

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

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

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

@webroot @web 

最后一個藏有別名的地方:

@verdor/yiisoft/extensions.php

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

定義與解析別名

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

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

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

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

別名的解析過程

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

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

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

Summary

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

別名必然以 @ 打頭。

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

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

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

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

別名解析時,優(yōu)先匹配較長的別名。

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

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

參考

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

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

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/21433.html

相關(guān)文章

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

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

    Prasanta 評論0 收藏0
  • Swoft 源碼解讀

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

    weij 評論0 收藏0
  • Yii源碼解讀 - 事件

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

    AaronYuan 評論0 收藏0
  • Yii源碼解讀-屬性

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

    instein 評論0 收藏0
  • Yii源碼解讀-類自動加載

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

    Jeffrrey 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<