韩国三级在线,午夜免费视频久伴网,男女18一级大黄毛片免费,国产3p一区,久久精品视频里只有精品,男人的天堂在线,亚洲人成桃花岛久久久久久,heisi在线网站,人妻中文字幕无码久久av爆,自拍偷拍二区

自動加載

概述

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

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

自動加載

由于新版ThinkPHP完全采用(yong)了命名(ming)空(kong)間(jian)的(de)特性(xing),因(yin)此只需要給類(lei)庫正確(que)定義所(suo)在(zai)的(de)命名(ming)空(kong)間(jian),而命名(ming)空(kong)間(jian)的(de)路徑與類(lei)庫文件的(de)目(mu)錄一致,那么就(jiu)可以實現(xian)類(lei)的(de)自動加載。

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

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

系統會按順序檢測(ce),一旦(dan)檢測(ce)生效的話,就會自(zi)動(dong)載入(ru)對應的類庫(ku)文件。

類庫映射

遵(zun)循我(wo)們上面(mian)的(de)命(ming)名(ming)空(kong)(kong)(kong)間(jian)定(ding)義(yi)規范的(de)話,基本上可(ke)以(yi)完成類(lei)庫的(de)自(zi)動加(jia)載了,但是如果(guo)定(ding)義(yi)了較多的(de)命(ming)名(ming)空(kong)(kong)(kong)間(jian)的(de)話,效率(lv)(lv)會有(you)所下降,所以(yi),我(wo)們可(ke)以(yi)給(gei)常用(yong)的(de)類(lei)庫定(ding)義(yi)類(lei)庫映(ying)射(she)。命(ming)名(ming)類(lei)庫映(ying)射(she)相當(dang)于給(gei)類(lei)文件(jian)定(ding)義(yi)了一個(ge)別名(ming),效率(lv)(lv)會比命(ming)名(ming)空(kong)(kong)(kong)間(jian)定(ding)位更高(gao)效,例如:

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

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

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

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

類庫導入

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

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

示例

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

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

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

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

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

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

Composer自動加載

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

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

文檔
目錄

深色
模式

切換
寬度