溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何實現(xiàn)Thinkphp 框架擴展之應(yīng)用模式

發(fā)布時間:2021-03-08 16:23:19 來源:億速云 閱讀:153 作者:TREX 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“如何實現(xiàn)Thinkphp 框架擴展之應(yīng)用模式”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

應(yīng)用模式

應(yīng)用模式是你的生活環(huán)境 開發(fā)環(huán)境 執(zhí)行環(huán)境 ,就好比一個框架的應(yīng)用場景(模式),是指這個框架在哪個平臺上運行,

thinkphp中SAE、普通、API三種模式,

  • 普通是指用于普通WEB開發(fā)和運行方式,

  • API是指用作API請求服務(wù)端,大多為別的客戶端進行服務(wù),供遠程調(diào)用

  • SAE是指在新浪的SAE平臺上用的

不同的模式下配置都是不一樣的

應(yīng)用模式提供了對核心框架進行改造的機會,可以讓你的應(yīng)用適應(yīng)更多的環(huán)境和不同的要求。

每個應(yīng)用模式有自己的模式定義文件,用于配置當前模式需要加載的核心文件和配置文件,以及別名定義、行為擴展定義等等。根據(jù)模式定義文件的定義位置和入口是否需要定義模式,可以分為顯式應(yīng)用模式和隱含應(yīng)用模式。

顯式應(yīng)用模式

顯式應(yīng)用模式的模式定義文件位于ThinkPHP\Mode目錄,如果我們要增加一個應(yīng)用模式,只需要在該目錄下面定義一個模式定義文件即可,下面是一個典型的模式定義文件(lite.php):

return array(
  // 配置文件
  'config'  => array(
    THINK_PATH.'Conf/convention.php',  // 系統(tǒng)慣例配置
    CONF_PATH.'config.php',   // 應(yīng)用公共配置
  ),
 
  // 別名定義
  'alias'   => array(
    'Think\Exception'     => CORE_PATH . 'Exception'.EXT,
    'Think\Model'       => CORE_PATH . 'Model'.EXT,
    'Think\Db'        => CORE_PATH . 'Db'.EXT,
    'Think\Cache'       => CORE_PATH . 'Cache'.EXT,
    'Think\Cache\Driver\File' => CORE_PATH . 'Cache/Driver/File'.EXT,
    'Think\Storage'      => CORE_PATH . 'Storage'.EXT,
  ),
 
  // 函數(shù)和類文件
  'core'   => array(
    MODE_PATH.'Lite/functions.php',
    COMMON_PATH.'Common/function.php',
    MODE_PATH . 'Lite/App'.EXT,
    MODE_PATH . 'Lite/Dispatcher'.EXT,
    MODE_PATH . 'Lite/Controller'.EXT,
    MODE_PATH . 'Lite/View'.EXT,
    CORE_PATH . 'Behavior'.EXT,
  ),
  // 行為擴展定義
  'tags' => array(
    'view_parse'  => array(
      'Behavior\ParseTemplate', // 模板解析 支持PHP、內(nèi)置模板引擎和第三方模板引擎
    ),
    'template_filter'=> array(
      'Behavior\ContentReplace', // 模板輸出替換
    ),
  ),
);

我們在ThinkPHP/Mode/Lite目錄下面創(chuàng)建functions.php函數(shù)庫文件,以及App.class.php、Dispatcher.class.php、Controller.class.php和View.class.php,這些類都是針對我們新的應(yīng)用模式定制的核心類,但是和標準模式的命名空間是一致的,也就是說都在Think命名空間下面。

ThinkPHP/Mode/Lite目錄用于存放該應(yīng)用模式下面的所有自定義文件。

應(yīng)用模式定義文件定義好后,我們就可以在應(yīng)用中使用該模式了,例如:

define('MODE_NAME','lite');
define('APP_PATH','./Application/');
require './ThinkPHP/ThinkPHP.php';

隱含應(yīng)用模式

隱含應(yīng)用模式的模式定義文件位于應(yīng)用的配置目錄下面 Application/Common/Conf/core.php,模式定義文件和顯式應(yīng)用模式的定義文件一樣。 使用隱含應(yīng)用模式的時候,不需要在入口文件中定義MODE_NAME,或者說存在隱含應(yīng)用模式定義文件的時候,MODE_NAME定義無效。

注意:如果應(yīng)用中定義的應(yīng)用模式需要使用其他的存儲類型,需要在入口文件中定義。

define('STORAGE_TYPE','Bae');

“如何實現(xiàn)Thinkphp 框架擴展之應(yīng)用模式”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI