摘要:框架的版本已經發布,版本最低要求是,將會在今年早些時候推出正式版。閱讀的代碼,能學到很多東西,代碼寫的很優雅,用到了很多版本的新特性。
yii框架的v-2.0-alpha版本已經發布,PHP版本最低要求是PHP-5.4,將會在今年早些時候推出正式版。閱讀yii2的代碼,能學到很多東西,代碼寫的很優雅,用到了很多php-5.4版本的新特性。
BaseYii這個類,在yii2框架中被稱作 core help class,在yii2框架中被很多類用到,它的namespace是yii.詳情參照下圖:
先說property:
他們都是靜態的成員變量
classMap
yii框架自動加載機制使用,是一個關聯數組,key值為首字母不為的類名(即namespace+classname的類全名),value是關聯的類定義文件路徑,這個路徑也可以是路徑別名(在yii中以@開始)
app
console或者web應用的類實例
aliases
注冊的別名路徑,初始值
$aliases = ["@yii" => DIR];
objectConfg
yii是組件式框架,objectConfig是使用createObject()創建組件或者類對象使用的配置,這個是關聯數組
key值是首字母不為的類名,value值是一個數組,使用createObject方法的時候會把value值賦給要創建的類的property
BaseYii的成員函數也都是靜態方法
getVersion()返回版本信息,powered()返回版權信息,t是多語言版本翻譯函數,這三個在實際開發中很少會用到,不再贅述
getAlias()
函數原型是: getAlias($alias, $throwException = true)
參數$alias是路徑別名,功能是獲取別名的真實路徑,如果沒有找到別名的路徑, $throwException為true拋出異常
這個方法索引靜態成員變量$aliases查找別名對應的路徑
getRootAlias()
函數原型: public static function getRootAlias($alias)
返回別名的root部分,舉個例子,別名@app/controller,就會返回app
setAlias()
函數原型:public static function setAlias($alias, $path)
向靜態成員變量$aliase注冊一個別名,$alias是別名名稱,$path是別名路徑
大概講一下設置別名的流程,明白設置別名的原理:
首先檢查$alias的值首字母是不是@,如果不是,添加@到值的首位
查找/出現的位置,確定別名$alias的root別名,如果$alias中包含/,則root的值為substr($alias, 0, $pos),否則就是本身
$path如果為空會釋放已存在的別名
$path不為空,如果存在root別名在靜態成員變量$aliases中,則把別名放在子別名中,否則就添加新的別名
autoload()
函數原型:public static function autoload($className)
yii類自動加載機制,從靜態成員變量$classMap索引$className
實現的具體邏輯參考源代碼
createObject()
函數原型:public static function createObject($config)
實現組件的一個方法,創建一個組件(類)的方法,$config如果是一個字符串,那它必須是組件或者類的名稱,如果是一個數組,必須設置
$config["class"],假設$config的值是 $config["class"=>"test", ["v1"=>1,"v2"=>2]]
檢查靜態成員變量$objectConfig是不是設置過$configConfig["test"],如果有,$configConfig["test"]的合并到config中去
最后會根據傳入的參數個數來決定是使用反射或者new來創建組件實例
configure()
函數原型:public static function configure($object, $properties)
設置對象的屬性
trace ,error,warning,info.beginProfile,endProfile是日志相關操作,不再詳細敘述。
BaseYii就是一個helper類,里面的方法變量貫穿在整個yii框架里,是框架的綱要,在這個類里,實現了類的自動加載機制,實現了組件的創建配置機制
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/20678.html
摘要:繼續跟蹤前,先看看類的方法組件初始化時,注冊回調函數,確保腳本執行完畢時消息被正確打印。將示例函數的方法改成然后在腳本執行過程中,按下,或者通過命令發送信號,日志都正常輸出,表明中的回調函數被正常調用。 轉載請注明出處:https://tlanyan.me/trace-log-... 命令行下運行長時間任務,發現Yii2的log組件不能正常輸出日志。空閑之余逐步追蹤問題,終于發現原因...
摘要:行為是如何注冊到組件的呢通過注冊行為之后,實際上是添加到了的屬性中那么行為中的屬性,就添加到了,中進行直接調用行為里面的方法的時候,實際上觸發了里面的魔術方法繼承鏈圖解 Yii2 框架Trace 準備 了解composer的autoload psr0 psr4 加載機制 了解spl_autoload_register 了解依賴注入的實現原理反射 了解常用魔術方法__set,__get...
摘要:實現的類自動加載,依賴于的,注冊一個自己的自動加載函數,并插入到自動加載函數棧的最前面,確保的會被最先調用。首先加載第三方的,再加載的。最后加載的,這樣可以保證的優先加載。 實現 Yii的類自動加載,依賴于PHP的spl_autoload_register(), 注冊一個自己的自動加載函數(autoloader),并插入到自動加載函數棧的最前面,確保Yii的autoloader會被最先...
摘要:高性能始終是的首要目標之一。版是上代的老版本,現在處于維護狀態。版是一個完全重寫的版本,采用了最新的技術和協議,包括依賴包管理器代碼規范命名空間特質等等。所以,我們學習版本。啟用本鏡像服務系統全局配置即將配置信息添加到的全局配置文件中。 工作中需要用到YII框架,于是乎,系統的學習下這套框架,詳細教程請看考該站完整系列:YII2教程 一、YII簡介 1、什么是YII Yii 是一個高性...
摘要:本教程主要基于大神的開源商城,為大家解讀的源碼,由于原版商城更多是針對國際業務,因此本教程會適當修改,使其更適合于微信環境。 本教程主要基于 terry 大神的開源商城 Fecshop,為大家解讀 Fecshop 的源碼,由于原版商城更多是針對國際業務,因此本教程會適當修改,使其更適合于微信環境。由于商城源碼復雜,本教程將長期更新。本人也是邊學習邊寫這份教程,過程中難免會出現錯誤,還請...
閱讀 704·2021-11-22 13:54
閱讀 3065·2021-09-26 10:16
閱讀 3490·2021-09-08 09:35
閱讀 1576·2019-08-30 15:55
閱讀 3429·2019-08-30 15:54
閱讀 2075·2019-08-30 10:57
閱讀 497·2019-08-29 16:25
閱讀 877·2019-08-29 16:15