TP框架學習筆記(第一章)

2021-10-09 15:03:57 字數 2638 閱讀 5039

框架基本思想是相通的,會一門就可以輕鬆另一門,精通一門即可。

學習框架的好處:寫優雅的**,深入理解php。

還需要總結乙個學習框架原始碼方**,不只是學習框架,還要舉一反三,學習其它元件比如nginx原始碼或者別的原始碼。要掌握如何學習原始碼的方**。

學習框架需要一些基礎概念的學習,設計模式,容器,facede ,依賴注入,aop。

tp5.1安裝命令:

composer create-project topthink/think     (安裝的目錄)tp5.1    (指定的版本號)v5.1.35

開始學習框架:

1.類的自動載入

yii和tp框架在入口檔案處,首先做的事情都逃不開實行自動載入。

因此自動載入是核心的內容,借助spl_autoload_register() 實現。

tp自動載入屬性設定:

自動載入的靈魂**:

能夠一定意義上的提公升效能並且將類都載入進來。

分析自動載入**:

base.php 這個檔案是自動載入檔案。它的內容:

loader::register 主要幹了這樣幾件事情:

這個檔案一共這5個重要的屬性:$classmap  $classalias  $prefixlengthspsr4  $prefixdirspsr4    $fallbackdirspsr4

首先,composer附帶的載入檔案autoload_static.php中的屬性,在loader檔案也有對應的屬性,即 $prefixlengthspsr4  和 $prefixdirspsr4 來儲存。

這段**就等於將composer載入進來:

// composer自動載入支援

if (is_dir(self::$composerpath)) = $composerclass::$; //將composer的autoload_static.php的屬性給此類儲存}}

} else

}

這段**將composer的屬性由loader對應的兩個字段儲存,這些字段稍後會提及怎麼載入。

然後是載入thinkphp的核心類庫,這個目錄是thinkphp\library.

然後就是runtime下的載入,這個檔案要用到乙個命令,php think optimize:autoload,此時,runtime下面會生成乙個classmap.php檔案,它的內容是這樣的:

載入進來的檔案陣列使用loader::$classmap屬性儲存.
然後載入的是extend第三方類庫:

檢視   findfile()函式   可以知道,這個函式將會根據屬性已儲存的目錄,去找到對應的檔案載入進來。findfile()函式部分**:

隨後,classalias屬性陣列儲存別名檔案,這些檔案都是在thinkphp\library\think目錄下的檔案,前面已經載入了,這裡無需載入並且可以使用別名:

乙個別名屬性,對已載入的類庫進行別名化,$classmap​​​​​​​

第一章學習筆記

看c primer已經好幾遍了,但是還是有很多基礎的問題,總是那樣容易忘記,這次看的時候,決定好好的寫寫讀書筆記 希望能夠認真的堅持下去。incluede的兩種不同格式 include some file 表明檔案是乙個標準工程,查詢先檢查預定義的目錄。include my file 表明改檔案是使...

python第一章筆記 第一章 基礎

參與除法的兩個數中有乙個數為浮點數,結果也為浮點數 如 1.0 2,1 2.0,1.0 2.0 python print 1.0 2 結果 0.5 print 1 2.0 結果 0.5 print 1.0 2.0 結果 0.5 整數 整數,計算結果的小數部分被截除,只保留整數部分 不會四捨五入 如 ...

第一章 筆記

2.呼叫mat的size 方法,可以獲取該影象的尺寸。返回的是乙個結構體。mat image cout height 3.在原地進行的影象變換 mat image,result flip image,result,1 1 表示水平翻轉 2 表示垂直翻轉 負數表示既有水平也有垂直翻轉 imwrite ...