最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

thinkPHP5.0框架自動加載機制分析

 更新時間:2017年03月18日 09:41:49   作者:chinalorin  
這篇文章主要介紹了thinkPHP5.0框架自動加載機制,較為詳細(xì)的分析了thinkPHP5.0自動加載的概念、原理、用法與相關(guān)注意事項,需要的朋友可以參考下

本文實例講述了thinkPHP5.0框架自動加載機制。分享給大家供大家參考,具體如下:

概述

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

自動加載的實現(xiàn)由think\Loader類庫完成,自動加載規(guī)范符合PHP的PSR-4。

自動加載

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

類庫的自動加載檢測順序如下:

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

系統(tǒng)會按順序檢測,一旦檢測生效的話,就會自動載入對應(yīng)的類庫文件。

類庫映射

遵循我們上面的命名空間定義規(guī)范的話,基本上可以完成類庫的自動加載了,但是如果定義了較多的命名空間的話,效率會有所下降,所以,我們可以給常用的類庫定義類庫映射。命名類庫映射相當(dāng)于給類文件定義了一個別名,效率會比命名空間定位更高效,例如:

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

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

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

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

類庫導(dǎo)入

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

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

示例

// 引入 extends/qrcode.php
Loader::import('qrcode', EXTEND_PATH);
// 助手函數(shù)
import('qrcode', EXTEND_PATH);
// 引入 extends/wechat-sdk/wechat.class.php
Loader::import('wechat-sdk.wechat', EXTEND_PATH, '.class.php');
// 助手函數(shù)
import('wechat-sdk.wechat', EXTEND_PATH, '.class.php');

類庫導(dǎo)入也采用類似命名空間的概念(但不需要實際的命名空間支持),支持的“根命名空間”包括:

目錄 說明
behavior 系統(tǒng)行為類庫
think 核心基類庫
traits 系統(tǒng)Traits類庫
app 應(yīng)用類庫
@ 表示當(dāng)前模塊類庫包

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

Composer自動加載

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

更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend FrameWork框架入門教程》、《smarty模板入門基礎(chǔ)教程》及《PHP模板技術(shù)總結(jié)》。

希望本文所述對大家基于ThinkPHP框架的PHP程序設(shè)計有所幫助。

  • Laravel 創(chuàng)建指定表 migrate的例子

    Laravel 創(chuàng)建指定表 migrate的例子

    今天小編就為大家分享一篇Laravel 創(chuàng)建指定表 migrate的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • 在 Laravel 中 “規(guī)范” 的開發(fā)短信驗證碼發(fā)送功能

    在 Laravel 中 “規(guī)范” 的開發(fā)短信驗證碼發(fā)送功能

    Laravel是一套簡潔、優(yōu)雅的PHP Web開發(fā)框架(PHP Web Framework)。接下來通過本文給大家分享在 Laravel 中 “規(guī)范” 的開發(fā)短信驗證碼發(fā)送功能,需要的朋友參考下吧
    2017-10-10
  • PHP解析html類庫simple_html_dom的轉(zhuǎn)碼bug

    PHP解析html類庫simple_html_dom的轉(zhuǎn)碼bug

    這篇文章主要介紹了PHP解析html類庫simple_html_dom的轉(zhuǎn)碼bug ,需要的朋友可以參考下
    2014-05-05
  • Thinkphp3.2實用篇之計算型驗證碼示例

    Thinkphp3.2實用篇之計算型驗證碼示例

    本篇文章主要介紹了Thinkphp3.2實用篇之計算型驗證碼示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • 解析PHP緩存函數(shù)的使用說明

    解析PHP緩存函數(shù)的使用說明

    本篇文章是對PHP緩存函數(shù)的使用進行了詳細(xì)的分析介紹。需要的朋友參考下
    2013-05-05
  • 基于PHP實現(xiàn)通過照片獲取ip地址

    基于PHP實現(xiàn)通過照片獲取ip地址

    在本教程中,我們將學(xué)習(xí)如何用一張照片來盜取ip地址。我的想法是通過修改.htaccess文件,將jpg文件當(dāng)作php文件來解析。感興趣的朋友一起學(xué)習(xí)吧
    2016-04-04
  • PHP網(wǎng)頁游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(十一)

    PHP網(wǎng)頁游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(十一)

    這篇文章主要介紹了PHP網(wǎng)頁游戲Xnova(ogame)源碼解讀的建筑頁面部分,需要的朋友可以參考下
    2014-06-06
  • 詳解PHP的Sodium加密擴展函數(shù)

    詳解PHP的Sodium加密擴展函數(shù)

    Sodium 出現(xiàn)的目的也是為了代替Mcrypt這個原來的加密擴展。在 PHP7.2 之后,Mcrypt已經(jīng)被移除,在PHP7.1時就已經(jīng)被標(biāo)記為過時。不過,Sodium擴展的應(yīng)用也并不是很多,大部分情況下我們都會使用OpenSSL來進行加密操作,所以,我們這篇文章只做了解即可。
    2021-06-06
  • php制作動態(tài)隨機驗證碼

    php制作動態(tài)隨機驗證碼

    這篇文章主要介紹了php制作動態(tài)隨機驗證碼的方法的相關(guān)資料,需要的朋友可以參考下
    2015-02-02
  • 最新評論

    隆子县| 新沂市| 德安县| 宜宾市| 长沙县| 施秉县| 师宗县| 松潘县| 肇庆市| 民县| 宁化县| 无锡市| 遂溪县| 密山市| 浑源县| 开江县| 绥阳县| 揭阳市| 巴彦淖尔市| 中西区| 璧山县| 汝阳县| 卓尼县| 丰都县| 高阳县| 全州县| 正镶白旗| 略阳县| 瓦房店市| 长阳| 乐安县| 清远市| 陇西县| 京山县| 英吉沙县| 铅山县| 廉江市| 阿克苏市| 徐汇区| 孝感市| 都江堰市|