亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

概述

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

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

自動加載

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

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

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

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

類庫映射

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

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

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

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

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

類庫導入

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

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

示例

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

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

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

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

Composer自動加載

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

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

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

相關文章

  • Zend Framework+smarty用法實例詳解

    Zend Framework+smarty用法實例詳解

    這篇文章主要介紹了Zend Framework+smarty用法,結合實例形式詳細分析了Zend Framework框架整合Smarty模板的具體步驟與相關實現技巧,需要的朋友可以參考下
    2016-03-03
  • Yii2針對指定url的生成及圖片等的引入方法小結

    Yii2針對指定url的生成及圖片等的引入方法小結

    這篇文章主要介紹了Yii2針對指定url的生成及圖片等的引入方法,針對常用的URL格式及圖片路徑操作結合實例進行了對比分析,需要的朋友可以參考下
    2016-07-07
  • 一組PHP加密解密函數分享

    一組PHP加密解密函數分享

    這篇文章主要介紹了一組PHP加密解密函數分享,需要的朋友可以參考下
    2014-06-06
  • PHP解決高并發(fā)的優(yōu)化方案實例

    PHP解決高并發(fā)的優(yōu)化方案實例

    這篇文章主要介紹了PHP解決高并發(fā)的優(yōu)化方案實例,介紹的非常詳細,對這塊不太明白的小伙伴可以跟隨小編一起來探討研究吧!
    2020-12-12
  • thinkphp文件引用與分支結構用法實例

    thinkphp文件引用與分支結構用法實例

    這篇文章主要介紹了thinkphp文件引用與分支結構用法,以實例形式演示了css與js文件導入的方法,以及if與switch語句的用法,需要的朋友可以參考下
    2014-11-11
  • 微信公眾號支付之坑:調用支付jsapi缺少參數 timeStamp等錯誤解決方法

    微信公眾號支付之坑:調用支付jsapi缺少參數 timeStamp等錯誤解決方法

    這段時間一直比較忙,一忙起來真感覺自己就只是一臺掙錢的機器了(說的好像能掙到多少錢似的,呵呵);這會難得有點兒空閑時間,想把前段時間開發(fā)微信公眾號支付遇到問題及解決方法跟大家分享下,這些“暗坑”能不掉就不掉吧,要不然關鍵時刻出問題,真是讓人急的焦頭爛額
    2016-01-01
  • PHP開發(fā)中csrf攻擊的簡單演示和防范

    PHP開發(fā)中csrf攻擊的簡單演示和防范

    CSRF的全名為Cross-site request forgery,它的中文名為 跨站請求偽造(偽造跨站請求【這樣讀順口一點】)CSRF是一種夾持用戶在已經登陸的web應用程序上執(zhí)行非本意的操作的攻擊方式。相比于XSS,CSRF是利用了系統對頁面瀏覽器的信任,XSS則利用了系統對用戶的信任。
    2017-05-05
  • Laravel+Layer實現圖片上傳功能(整理篇)

    Laravel+Layer實現圖片上傳功能(整理篇)

    這篇文章主要介紹了Laravel+Layer實現圖片上傳功能(整理篇),需要的朋友可以參考下
    2018-01-01
  • php 圖片上傳類代碼

    php 圖片上傳類代碼

    php 圖片上傳類代碼,功能也比較全,大家根據需要選擇。
    2009-07-07
  • TP5(thinkPHP5)框架基于ajax與后臺數據交互操作簡單示例

    TP5(thinkPHP5)框架基于ajax與后臺數據交互操作簡單示例

    這篇文章主要介紹了TP5(thinkPHP5)框架基于ajax與后臺數據交互操作,結合實例形式分析了thinkPHP5前端基于jQuery的ajax數據提交及后臺數據接收、處理相關操作技巧,需要的朋友可以參考下
    2018-09-09

最新評論