首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

Zend Framework Zend_Config_Ini 設定檔完整用法教學

     編輯:PHP 相關知識

Zend Framework Zend_Config_Ini 設定檔完整用法教學

Zend_Config_Ini 採用熟悉的 INI 格式,支援點號分隔的巢狀鍵值與區段繼承,是中小型專案最常用的設定管理方式。本文詳細說明語法規則、載入選項與實際應用範例。

INI 結構與繼承語法

[production]
webhost = www.example.com
database.adapter = pdo_mysql
database.params.host = db.example.com
database.params.username = dbuser
database.params.password = secret
database.params.dbname = dbname

[staging : production]
database.params.host = dev.example.com
database.params.username = devuser
database.params.password = devsecret
  • 區段名稱置於 [] 內。
  • 冒號 : 表示繼承,[staging : production] 代表 staging 繼承 production 所有設定,並可覆寫個別鍵值。
  • 點號 . 表示巢狀層級,對應物件屬性存取 $config->database->params->host。

PHP 載入與存取

<?php
$config = new Zend_Config_Ini('/path/to/config.ini', 'staging');
echo $config->database->params->host;   // 輸出 "dev.example.com"
echo $config->database->params->dbname; // 輸出 "dbname" (繼承自 production)
?>

建構子參數詳解

<?php
$options = [
    'allowModifications' => true,  // 允許執行期修改設定值(預設 false)
    'nestSeparator' => ':'         // 自訂巢狀分隔字元(預設 .)
];
$config = new Zend_Config_Ini('/path/to/config.ini', 'staging', $options);
?>
參數說明
$filenameINI 檔案路徑
$section要載入的區段名稱;null 載入所有區段;陣列可載入多區段並合併
$options選項陣列:allowModifications、nestSeparator

parse_ini_file 底層行為注意事項

  • INI 值 true/false/yes/no/null 會被 PHP 自動轉型為布林或 null,字串 "true" 需加引號 "true"。
  • 鍵值若包含特殊字元(如 {}、|、&)需加雙引號包裹。
  • 註解使用 ; 開頭,不可出現在行尾(需獨立一行)。

多區段合併載入範例

<?php
// 同時載入 production 與 staging,staging 覆寫 production
$config = new Zend_Config_Ini('/path/to/config.ini', ['production', 'staging']);
// 等同於先載入 production,再載入 staging 並合併
?>

適用場景與建議

  • 設定結構扁平、團隊熟悉 INI 格式、需區段繼承時首選。
  • 生產環境建議設定 allowModifications = false 確保設定不可竄改。
  • 搭配 Zend_Registry 於 Bootstrap 註冊,全域存取:Zend_Registry::set('config', $config)。

延伸閱讀

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved