午夜91福利视频,午夜成人在线观看,午夜在线视频免费观看,午夜福利短视频,精品午夜成人免费视频APP

自動加載

概述

ThinkPHP5.0真正實現了按需加載,所有類庫采用自動加載機制,并且支持類庫映射和composer類庫的自動加載。

自動加載的實現由think\Loader類庫完成,自動加載規范符合PHP的PSR-4

自動加載

由于新版ThinkPHP完全采用了命(ming)(ming)名空間的特(te)性,因此只需要給(gei)類(lei)庫正確定(ding)義所在的命(ming)(ming)名空間,而命(ming)(ming)名空間的路徑(jing)與類(lei)庫文件(jian)的目錄一致(zhi),那(nei)么就可以實現類(lei)的自動加載。

類庫的(de)自動加(jia)載檢測(ce)順序如下:

1、類庫映射檢測;
2、PSR-4自動加載檢測;
3、PSR-0自動加載檢測;

系統會按順序檢(jian)測(ce),一旦檢(jian)測(ce)生(sheng)效的話,就會自動載(zai)入對應的類庫文件。

類庫映射

遵(zun)循我(wo)們(men)上(shang)面的(de)(de)命名(ming)(ming)空(kong)間定義(yi)規范的(de)(de)話,基本上(shang)可以完成(cheng)類(lei)庫(ku)的(de)(de)自動加載了,但是如果定義(yi)了較多的(de)(de)命名(ming)(ming)空(kong)間的(de)(de)話,效(xiao)率會有所下降(jiang),所以,我(wo)們(men)可以給(gei)常用的(de)(de)類(lei)庫(ku)定義(yi)類(lei)庫(ku)映射。命名(ming)(ming)類(lei)庫(ku)映射相當于(yu)給(gei)類(lei)文件定義(yi)了一個別名(ming)(ming),效(xiao)率會比命名(ming)(ming)空(kong)間定位更高(gao)效(xiao),例(li)如:

Loader::addClassMap('think\Log',LIB_PATH.'think\Log.php');
Loader::addClassMap('org\util\Array',LIB_PATH.'org\util\Array.php');

也可以利用addClassMap方法批量導入(ru)類庫映射定(ding)義,例如:

$map = [
    'think\Log'     =>  LIB_PATH.'think\Log.php',
    'org\util\array'=>  LIB_PATH.'org\util\Array.php'
];
Loader::addClassMap($map);

雖然通過類庫(ku)映(ying)射的方式(shi)注冊的類可以不強制要求對應命名空(kong)間(jian)目(mu)錄(lu),但(dan)是仍然建(jian)議遵循PSR-4規范(fan)定(ding)義類庫(ku)和目(mu)錄(lu)。

類庫導入

如果你不需要系統的自動加載功能,又或者沒有使用命名空間的話,那么也可以使用think\Loader類的import方法手動(dong)加載類庫文(wen)件,例如:

Loader::import('org.util.array');
Loader::import('@.util.upload');

示例

// 引入 extend/qrcode.php
Loader::import('qrcode', EXTEND_PATH);
// 助手函數(shu)
import('qrcode', EXTEND_PATH);

// 引入 extend/wechat-sdk/wechat.class.php
Loader::import('wechat-sdk.wechat', EXTEND_PATH, '.class.php');
// 助手(shou)函數(shu)
import('wechat-sdk.wechat', EXTEND_PATH, '.class.php');

類(lei)庫導入(ru)也采用類(lei)似(si)命名空間(jian)的概念(但不需要實際的命名空間(jian)支(zhi)持(chi)(chi)),支(zhi)持(chi)(chi)的“根命名空間(jian)”包(bao)括:

目錄 說明
behavior 系統行為類庫
think 核心基類庫
traits 系統Traits類庫
app 應用類庫
@ 表示當前模塊類庫包

如果完全(quan)遵從系(xi)統的命名空間定義的話,一般來說無(wu)需手動加載類庫文件,直接實例化即可。

ThinkPHP5.0不推薦使用import方法。

Composer自動加載

5.0版本支持Composer安裝的類庫的自動加載,你可以直接按照Composer依賴庫中的命名空間直接調用(yong)。

文檔最后更新時間:2018-04-25 17:49:15

文檔
目錄

深色
模式

切換
寬(kuan)度