成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

yii2代碼學(xué)習(xí)-BaseYii

chavesgu / 732人閱讀

摘要:框架的版本已經(jīng)發(fā)布,版本最低要求是,將會在今年早些時候推出正式版。閱讀的代碼,能學(xué)到很多東西,代碼寫的很優(yōu)雅,用到了很多版本的新特性。

yii框架的v-2.0-alpha版本已經(jīng)發(fā)布,PHP版本最低要求是PHP-5.4,將會在今年早些時候推出正式版。閱讀yii2的代碼,能學(xué)到很多東西,代碼寫的很優(yōu)雅,用到了很多php-5.4版本的新特性。

BaseYii這個類,在yii2框架中被稱作 core help class,在yii2框架中被很多類用到,它的namespace是yii.詳情參照下圖:

先說property:
他們都是靜態(tài)的成員變量

classMap
yii框架自動加載機制使用,是一個關(guān)聯(lián)數(shù)組,key值為首字母不為的類名(即namespace+classname的類全名),value是關(guān)聯(lián)的類定義文件路徑,這個路徑也可以是路徑別名(在yii中以@開始)

app
console或者web應(yīng)用的類實例

aliases
注冊的別名路徑,初始值
$aliases = ["@yii" => DIR];

objectConfg
yii是組件式框架,objectConfig是使用createObject()創(chuàng)建組件或者類對象使用的配置,這個是關(guān)聯(lián)數(shù)組
key值是首字母不為的類名,value值是一個數(shù)組,使用createObject方法的時候會把value值賦給要創(chuàng)建的類的property

BaseYii的成員函數(shù)也都是靜態(tài)方法

getVersion()返回版本信息,powered()返回版權(quán)信息,t是多語言版本翻譯函數(shù),這三個在實際開發(fā)中很少會用到,不再贅述

getAlias()
函數(shù)原型是: getAlias($alias, $throwException = true)
參數(shù)$alias是路徑別名,功能是獲取別名的真實路徑,如果沒有找到別名的路徑, $throwException為true拋出異常
這個方法索引靜態(tài)成員變量$aliases查找別名對應(yīng)的路徑

getRootAlias()
函數(shù)原型: public static function getRootAlias($alias)
返回別名的root部分,舉個例子,別名@app/controller,就會返回app

setAlias()
函數(shù)原型:public static function setAlias($alias, $path)
向靜態(tài)成員變量$aliase注冊一個別名,$alias是別名名稱,$path是別名路徑
大概講一下設(shè)置別名的流程,明白設(shè)置別名的原理:
首先檢查$alias的值首字母是不是@,如果不是,添加@到值的首位
查找/出現(xiàn)的位置,確定別名$alias的root別名,如果$alias中包含/,則root的值為substr($alias, 0, $pos),否則就是本身
$path如果為空會釋放已存在的別名
$path不為空,如果存在root別名在靜態(tài)成員變量$aliases中,則把別名放在子別名中,否則就添加新的別名

autoload()
函數(shù)原型:public static function autoload($className)
yii類自動加載機制,從靜態(tài)成員變量$classMap索引$className
實現(xiàn)的具體邏輯參考源代碼

createObject()
函數(shù)原型:public static function createObject($config)
實現(xiàn)組件的一個方法,創(chuàng)建一個組件(類)的方法,$config如果是一個字符串,那它必須是組件或者類的名稱,如果是一個數(shù)組,必須設(shè)置
$config["class"],假設(shè)$config的值是 $config["class"=>"test", ["v1"=>1,"v2"=>2]]
檢查靜態(tài)成員變量$objectConfig是不是設(shè)置過$configConfig["test"],如果有,$configConfig["test"]的合并到config中去
最后會根據(jù)傳入的參數(shù)個數(shù)來決定是使用反射或者new來創(chuàng)建組件實例

configure()
函數(shù)原型:public static function configure($object, $properties)
設(shè)置對象的屬性

trace ,error,warning,info.beginProfile,endProfile是日志相關(guān)操作,不再詳細敘述。

BaseYii就是一個helper類,里面的方法變量貫穿在整個yii框架里,是框架的綱要,在這個類里,實現(xiàn)了類的自動加載機制,實現(xiàn)了組件的創(chuàng)建配置機制

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/20678.html

相關(guān)文章

  • CLI模式下Yii2的log問題追蹤

    摘要:繼續(xù)跟蹤前,先看看類的方法組件初始化時,注冊回調(diào)函數(shù),確保腳本執(zhí)行完畢時消息被正確打印。將示例函數(shù)的方法改成然后在腳本執(zhí)行過程中,按下,或者通過命令發(fā)送信號,日志都正常輸出,表明中的回調(diào)函數(shù)被正常調(diào)用。 轉(zhuǎn)載請注明出處:https://tlanyan.me/trace-log-... 命令行下運行長時間任務(wù),發(fā)現(xiàn)Yii2的log組件不能正常輸出日志??臻e之余逐步追蹤問題,終于發(fā)現(xiàn)原因...

    ztyzz 評論0 收藏0
  • Yii2 完整框架分析(詳細)

    摘要:行為是如何注冊到組件的呢通過注冊行為之后,實際上是添加到了的屬性中那么行為中的屬性,就添加到了,中進行直接調(diào)用行為里面的方法的時候,實際上觸發(fā)了里面的魔術(shù)方法繼承鏈圖解 Yii2 框架Trace 準(zhǔn)備 了解composer的autoload psr0 psr4 加載機制 了解spl_autoload_register 了解依賴注入的實現(xiàn)原理反射 了解常用魔術(shù)方法__set,__get...

    spademan 評論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
  • YII2快速學(xué)習(xí)筆記

    摘要:高性能始終是的首要目標(biāo)之一。版是上代的老版本,現(xiàn)在處于維護狀態(tài)。版是一個完全重寫的版本,采用了最新的技術(shù)和協(xié)議,包括依賴包管理器代碼規(guī)范命名空間特質(zhì)等等。所以,我們學(xué)習(xí)版本。啟用本鏡像服務(wù)系統(tǒng)全局配置即將配置信息添加到的全局配置文件中。 工作中需要用到Y(jié)II框架,于是乎,系統(tǒng)的學(xué)習(xí)下這套框架,詳細教程請看考該站完整系列:YII2教程 一、YII簡介 1、什么是YII Yii 是一個高性...

    kbyyd24 評論0 收藏0
  • Yii2:教你一步步寫一個微信商城(一)

    摘要:本教程主要基于大神的開源商城,為大家解讀的源碼,由于原版商城更多是針對國際業(yè)務(wù),因此本教程會適當(dāng)修改,使其更適合于微信環(huán)境。 本教程主要基于 terry 大神的開源商城 Fecshop,為大家解讀 Fecshop 的源碼,由于原版商城更多是針對國際業(yè)務(wù),因此本教程會適當(dāng)修改,使其更適合于微信環(huán)境。由于商城源碼復(fù)雜,本教程將長期更新。本人也是邊學(xué)習(xí)邊寫這份教程,過程中難免會出現(xiàn)錯誤,還請...

    Invoker 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<