一、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/');
<?phpreturn ["user_emial" => "1005349393@qq.com"];
var_dump(config("email.user_emial")); // 在系统默认中,会给我们的环境变量都加一个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中文網其他相關文章!