首頁 後端開發 php教程 thinkphp配置類型有哪些?怎麼實現?

thinkphp配置類型有哪些?怎麼實現?

Jun 23, 2017 am 11:32 AM
php thinkphp5 講解 配置

一、thinkphp配置類型有哪些?

  1.在thinkphp中,有6種配置。即慣例配置,套用配置、擴充配置、模組配置、場景配置、動態配置。

  2.慣例配置就是系統預設的配置。

  3.應用程式配置就是我們自己開發創建的應用單獨的配置。

  4.擴充配置主要是實現我們專案在開發過程中有一些擴充程式用到的設定。

  5.模組配置就是我們在一個應用中,每一個模組的配置。

  6.場景配置主要是實現我們在不同的開發環境中所設定的配置。若我們在家中辦公,電腦環境可能不一樣;公司裡面辦公,公司的電腦環境有不一樣。

  7.動態配置在我們模組中開發實現的動態配置。如我們在某一個控制器中定義資料庫的配置。

二、thinkphp配置的實作原理是什麼樣的?

  1.thinkphp實現這樣不同類型的配置,很大程度上面方面了我們進行模組化配置,增強了配置的靈活性。

  2.thinkphp的設定載入順序主要是依照下列順序。動態配置》》模組配置》》擴展配置》》應用配置》》慣例配置

  3.thinkphp實現配置主要是使用了php的array_merage()函數(如果兩個或更多個數組元素有相同的鍵名,則最後的元素會覆寫其他元素。當我們系統去載入我們的設定檔時,就會覆蓋前面的設定文件,因此才會實現上面第二步的執行順序。

三、為什麼要實現這樣的配置?

  1.透過不同類型的配置,我們方便專案的組態管理。加入我們就使用框架自帶的配置,當我們在某個模組開發中,需要將資料存在另外一台伺服器的資料庫上,是不是我們的專案就不能實現了。像這種情況還很多,這只是一個簡單的例子。

四、設定檔要求

  在所有的設定檔中都是採用數組的方式,當我們系統在載入該設定檔時,都會return一個數組,這個數組就是我們的配置項目。我們在系統中存取配置項,可以使用config()助手函數,也可以使用config類別

五、如何是實作這些類型的設定呢?

  1.慣例配置。

    慣例配置直接在框架的核心目錄下面的convention.php中,這裡不做細講。

  2.套用設定。

    我們在建立專案時,框架會預設在application目錄西面建立config.php,database.php等設定檔。我們直接在對應的文件中進行操作即可。下面單獨講解的主要是採用建立目錄來配置,效果都是一樣的,無非是換了個檔案路徑而已。

    a.定義設定檔路徑,找到專案入口文件,在application同級目錄下建立一個config的目錄(後面設定解說都是在該目錄下面操作,下面就不單獨講解)。

define('CONF_PATH', __DIR__.'/../config/');
登入後複製
     接下來在該目錄下方直接建立設定檔即可,建立的檔案名稱不一定侷限於config,database。至於檔案裡面的設定項和convention.php設定檔的方式一致。當我們在專案運行過程中,會自動的載入該目錄下面的設定項。

  3.擴充配置。擴展配置主要是我們在開發中用它的一些資料的擴展使用,如我們使用郵箱,要涉及到郵箱的帳號。便可以在該目錄下方配置。我們在config目錄下面建立一個extra目錄,在該目錄下面建立對應的檔案。如我在下面創建了email.php文件,定義如下內容:

<?phpreturn ["user_emial" => "1005349393@qq.com"]; 
登入後複製
#  在我們系統中加載該配置項。

var_dump(config("email.user_emial")); // 在系统默认中,会给我们的环境变量都加一个PHP的前缀,并且都会将配置项转换为大写。这里我们使用我们的助手函数便可直接访问配置项。
登入後複製
 

  4.模組配置。這裡大致講解一下即可。主要的就是在我們的模組目錄下面建立對應的config.php,database.php等檔案即可。

  

5.場景配置。 ***這是本文的大招。 場景配置主要是為了適應我們不同的開發環境,例如我們在公司的環境和在家裡面的環境配置不一致,此時我們可能需要修改很多地方,同時回到了公司又得修改過來,這樣豈不是很麻煩。

    首先,我們在config目錄下面的設定檔中載入一個設定檔。

'app_status'             => 'office', // 这里的配置项的值就是我们对应的配置环境。
登入後複製

 

    接下来,在我们的config目录下面创建一个office.php(这里的文件名必须和上面配置项的值完全一致

    最后,我们直接在我们的office.php配置文件中配置即可。其实在thinkphp还有个比较不错的功能就是.env。之前一直知道laravel有,没主要thinkphp5,最近才发现。使用该功能对于开发中的配置又方便了很多了。很赞。

    首先我们在我们的项目目录下面创建一个.env的文件,里面配置我们的配置项。如下

 

status= office
登入後複製

 

    我们要使用的话,直接使用框架自带的env类即可。至于更多有关env的方法直接参考开发手册。

'app_status' => Env::get("status");我们将上一步场景配置项中的值设置为.env文件中的配置项。一定要引入ENV这个类。
登入後複製

    通过我们的.env文件,只需要我们实现将一些配置文件配置好,或者将一些常用的配置文件放在.env文件中,我们就只修改这一个文件即可。

  6.动态配置。动态配置顾名思义是随着我们项目开发的需要来配置,而不是直接使用我们配置文件中的配置。下面列举一个简单的实例。

<?php
namespace app\index\controller;use think\Controller;class Index extends Controller
{public function index()
    {
        config("app_name", "weixin"); // 在控制器中配置一个app_name的配置项,这里也可以使用config类来操作。
    }
}
登入後複製

以上是thinkphp配置類型有哪些?怎麼實現?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

我後悔之前不知道的 7 個 PHP 函數 我後悔之前不知道的 7 個 PHP 函數 Nov 13, 2024 am 09:42 AM

如果您是經驗豐富的PHP 開發人員,您可能會感覺您已經在那裡並且已經完成了。操作

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

php程序在字符串中計數元音 php程序在字符串中計數元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? 什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

See all articles