extend和vendor的區別 (tp5)

版權聲明:本文爲CSDN博主「Jack小火苗」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/zhanghao143lina/article/details/78931341

composer的會安裝到vendor裏,自己寫的,可以扔extend裏

通過了解tp5的目錄結構,我們知道其中有兩個目錄是紡織擴展類庫文件的。

extend是放置自定義或者其他類文件的。

vendor目錄是放置composer類庫文件的。

當我們的第三方類庫文件是下載的,而且類文件目錄一層又一層,我們開發當中要按照tp5的命名規範來做效率就會非常的低,而且面向對象編程就是拿來即用,何必還要動手去改類文件的源碼。

其實tp5給了我們一種方式去實現不用命名空間來加載第三方的類!

我們將類文件放到extend目錄下,在控制器中要用到類的話可以通過import(),函數手動引入類文件,引入方法官方手冊中有說明(架構->自動加載->類庫導入)。

// 引入 extend/qrcode.php
Loader::import(‘qrcode’, EXTEND_PATH);
// 助手函數
import(‘qrcode’, EXTEND_PATH);
// 引入 extend/wechat-sdk/wechat.class.php
Loader::import(‘wechat-sdk.wechat’, EXTEND_PATH,’.class.php’);
// 助手函數
import(‘wechat-sdk.wechat’, EXTEND_PATH,’.class.php’);

手動引入了類文件後,進行實例化需要特別注意了!

我們需要在 new 類文件()時,在類文件前面加一個 “ \ ” ,即如下:

$obj = new \Test();

加 ‘\’ 的原因是,tp5的命名空間自動加載規則:自動加載的實現由think\Loader類庫完

成,自動加載規範符合PHP的PSR-4,根據對規則的瞭解,放在extend目錄下沒有定義

命名空間的類文件,就是全局化的類。實例化全局化的類的話,即用""放在類名前表

示此類是全局類,就new一個全局化的類!
————————————————
版權聲明:本文爲CSDN博主「Jack小火苗」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/zhanghao143lina/article/details/78931341

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章