TP5中vendor和extend的區別

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

 


 

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

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

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

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

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

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

 

  1. // 引入 extend/qrcode.php
  2. Loader::import('qrcode', EXTEND_PATH);
  3. // 助手函數
  4. import('qrcode', EXTEND_PATH);
  5.  
  6. // 引入 extend/wechat-sdk/wechat.class.php
  7. Loader::import('wechat-sdk.wechat', EXTEND_PATH,'.class.php');
  8. // 助手函數
  9. import('wechat-sdk.wechat', EXTEND_PATH,'.class.php');

 

 

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

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

$obj = new  \Test();

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

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

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

示此類是全局類,就new一個全局化的類!

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