FuelPHP - 配置



在本節中,我們將瞭解如何配置 FuelPHP 應用程式。預設情況下,配置檔案儲存在 **fuel/app/config** 資料夾中。應用程式的主要配置檔案是 **fuel/app/config/config.php**。配置使用 PHP 的關聯陣列指定。

概述

預設情況下,所有預設配置檔案都在 **fuel/core/config** 資料夾中定義。要覆蓋預設配置,請在 ** /fuel/app/config/config.php** 檔案中新增相應的鍵並修改值。我們可以使用“點表示法”來簡化多維陣列。例如,以下配置具有相同的用途(載入指定的包)。

array("always_load" => array("packages" => array( ... ) ) ); 
always_load.packages = array( ... );

配置可以按用途分組,並使用不同的檔案指定,例如 db.php 用於資料庫配置,package.php 用於包管理等。

配置格式型別

FuelPHP 非常靈活,並提供不同的格式來指定配置。預設配置格式是使用 php 陣列的 PHP。其他選項包括:

**INI** - 許多軟體(包括 PHP 語言本身)支援的簡單基於文字的配置。

[group]
key = value

**YAML** - 易於理解、基於縮排且易於人類閱讀的配置管理。

group:
   key: value

**JSON** - 易於理解且開發人員最常用的檔案格式。

{ 
   "group" : 
   { 
      "key": "value" 
   } 
} 

**Memcached** - 將配置儲存在 Memcached 伺服器中。Memcached 伺服器詳細資訊可以在主配置檔案 **fuel/app/config/config.php** 中使用 **config.memcached** 條目指定。

**DB** - 將配置儲存在 RDBMS 系統中。配置表的表結構如下所示。

CREATE TABLE IF NOT EXISTS `config` ( 
   `identifier` char(100) NOT NULL, 
   `config` longtext NOT NULL, 
   `hash` char(13) NOT NULL, 
   PRIMARY KEY (`identifier`) 
)

資料庫和表詳細資訊可以使用配置檔案中的 config.databaseconfig.table_name 條目指定。

環境

環境使 FuelPHP 能夠透過載入不同的配置以不同的模式工作。FuelPHP 支援以下環境。

  • **開發** - \Fuel::DEVELOPMENT 設定開發模式

  • **生產** - \Fuel::PRODUCTION 設定生產模式

  • **測試** - \Fuel::TEST 設定測試模式

  • **預釋出** - \Fuel::STAGING 設定預釋出模式

FuelPHP 還支援建立新的環境。這將使每個開發人員都有自己的配置設定,並且他們可以在編碼和測試應用程式時啟用它。可以透過簡單地建立一個與環境名稱相同的資料夾(例如:test)並將配置檔案放在新建立的資料夾中來新增特定環境的配置,如下所示。

. ├── config.php 
├── db.php 
├── development 
│   └── db.php 
├── production 
│   └── db.php 
├── routes.php 
├── staging 
│   └── db.php
└── test 
    └── db.php  
4 directories, 7 files

設定你的環境

有三種方法可以設定你的環境。

**選項 1** - 使用 Web 伺服器的環境變數設定環境。在 Apache Web 伺服器的 **httpd.conf** 檔案的虛擬主機部分新增以下程式碼。它也可以新增到 **.htaccess** 檔案中。

SetEnv FUEL_ENV production

**選項 2** - 使用 FuelPHP 引導檔案 ** /fuel/app/bootstrap.php** 設定環境

Fuel::$env = (isset($_SERVER['FUEL_ENV']

**選項 3** - 使用 Oil 設定環境

$ env FUEL_ENV = production php oil -v

它產生以下結果。

Fuel: 1.8 running in "production" mode
廣告

© . All rights reserved.