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

Zend Framework 1.x application.ini 配置完整參考手冊

     編輯:PHP 綜合知識

配置檔結構與繼承機制

; 區塊繼承:[child : parent]
[production]
; 基礎配置

[staging : production]
; 覆蓋 staging 專用

[testing : production]
phpSettings.display_errors = 1

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1

核心配置指令分類總表

1. PHP 執行環境設定

phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
phpSettings.error_reporting = E_ALL & ~E_DEPRECATED
phpSettings.date.timezone = "Asia/Taipei"
phpSettings.max_execution_time = 30
phpSettings.memory_limit = "256M"
phpSettings.post_max_size = "20M"
phpSettings.upload_max_filesize = "10M"

2. Include Path 與自動載入

includePaths.library = APPLICATION_PATH "/../library"
includePaths.models = APPLICATION_PATH "/models"
autoloaderNamespaces.0 = "My_"
autoloaderNamespaces.1 = "ZendX_"
autoloaderNamespaces.2 = "Doctrine_"

3. Bootstrap 設定

bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"

4. 前端控制器

resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.frontController.params.prefixDefaultModule = "1"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.frontController.plugins.layout = "My_Controller_Plugin_Layout"
resources.frontController.plugins.acl = "My_Controller_Plugin_Acl"

5. 版面配置

resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
resources.layout.layout = "default"
resources.layout.contentKey = "content"

6. 視圖設定

resources.view.encoding = "UTF-8"
resources.view.doctype = "HTML5"
resources.view.helperPath.My_View_Helper = APPLICATION_PATH "/views/helpers"
resources.view.basePath = APPLICATION_PATH "/views/scripts"

7. 資料庫連線

resources.db.adapter = "PDO_MYSQL"
resources.db.params.host = "localhost"
resources.db.params.port = 3306
resources.db.params.dbname = "myapp"
resources.db.params.username = "app_user"
resources.db.params.password = "secret"
resources.db.params.charset = "utf8mb4"
resources.db.params.driver_options.1002 = "SET NAMES utf8mb4"  ; PDO::MYSQL_ATTR_INIT_COMMAND
resources.db.isDefaultTableAdapter = true
resources.db.defaultMetadataCache = "cache"

8. 快取設定

resources.cachemanager.database.frontend.name = "Core"
resources.cachemanager.database.frontend.options.lifetime = 3600
resources.cachemanager.database.frontend.options.automatic_serialization = true
resources.cachemanager.database.backend.name = "File"
resources.cachemanager.database.backend.options.cache_dir = APPLICATION_PATH "/../data/cache/db"

resources.cachemanager.page.frontend.name = "Capture"
resources.cachemanager.page.frontend.options.lifetime = 600
resources.cachemanager.page.backend.name = "File"
resources.cachemanager.page.backend.options.cache_dir = APPLICATION_PATH "/../data/cache/page"

9. Session 設定

resources.session.save_path = APPLICATION_PATH "/../data/session"
resources.session.use_only_cookies = true
resources.session.remember_me_seconds = 864000
resources.session.gc_maxlifetime = 864000

10. 導航與翻譯

resources.navigation.pages.home.label = "首頁"
resources.navigation.pages.home.controller = "index"
resources.navigation.pages.home.action = "index"

resources.translate.adapter = "Array"
resources.translate.data = APPLICATION_PATH "/languages"
resources.translate.locale = "zh_TW"
resources.translate.options.scan = "directory"
resources.translate.options.disableNotices = true

11. 日誌設定

resources.log.stream.writerName = "Stream"
resources.log.stream.writerParams.stream = APPLICATION_PATH "/../data/logs/app.log"
resources.log.stream.writerParams.mode = "a"
resources.log.stream.filterName = "Priority"
resources.log.stream.filterParams.priority = 7  ; DEBUG

resources.log.firebug.writerName = "Firebug"
resources.log.firebug.filterParams.priority = 6  ; INFO

進階技巧

環境變數注入

resources.db.params.password = ""

需在 Bootstrap.php 啟用:

protected function _initConfig() {
    $this->getApplication()->getOptions(); // 觸發解析
}

動態陣列配置

resources.frontController.plugins[] = "My_Plugin_One"
resources.frontController.plugins[] = "My_Plugin_Two"
resources.router.routes.page.type = "Zend_Controller_Router_Route_Regex"
resources.router.routes.page.route = "page/(\d+)"
resources.router.routes.page.defaults.controller = "page"
resources.router.routes.page.defaults.action = "view"
resources.router.routes.page.map.1 = "id"

模組獨立配置

resources.modules[] = ""
; 等同於各模組載入各自 configs/module.ini
; 模組內 Bootstrap 可覆蓋全域資源

配置驗證腳本

// scripts/validate-config.php
$env = $argv[1] ?? 'production';
$config = new Zend_Config_Ini('/path/to/application.ini', $env, true);

$required = [
    'resources.db.params.host',
    'resources.db.params.dbname',
    'resources.db.params.username',
];

foreach ($required as $path) {
    $keys = explode('.', $path);
    $val = $config;
    foreach ($keys as $k) {
        if (!isset($val->$k)) {
            fwrite(STDERR, "Missing config: $path\n");
            exit(1);
        }
        $val = $val->$k;
    }
}
echo "Config validation passed for [$env]\n";
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved