處理多環境?
開發者常常希望根據是生產環境還是開發環境能夠區分不同的定制行為,例如,如果在開發環境的程序當中輸出詳細的錯誤信息這樣做對開發者來說是非常有幫助的,但是這樣做的話在生產環境中會造成一些安全問題。 In development environments, you might want additional tools loaded that you don’t in production environments, etc.
環境常量?
CodeIgniter 默認使用 $_SERVER[‘CI_ENVIRONMENT’] 的值作為 ENVIRONMENT 常量,否則默認就是 ‘production’。這樣能夠根據不同服務器安裝環境定制不同的環境依賴。
Apache?
如果要獲取 $_SERVER[‘CI_ENVIRONMENT’] 的值可以在 .htaccess 的文件里,或者可以在Apache的配置文件里使用 SetEnv 命令進行設置
SetEnv CI_ENVIRONMENT development
nginx?
在 nginx 下,為了能夠在 $_SERVER 里顯示環境變量的值你必須通過 fastcgi_params 來傳遞。這樣允許它在虛擬主機上工作來替代使用 env 去為整個服務器設置它,即使在專用服務器上運行良好。你可以修改該服務器的配置為:
server {
server_name localhost;
include conf/defaults.conf;
root /var/www;
location ~* "\.php$" {
fastcgi_param CI_ENVIRONMENT "production";
include conf/fastcgi-php.conf;
}
}
可選方法適用于 nginx 和其它服務器,或者你也可以完全移除這部分邏輯,并根據服務器的 IP 地址設置常量(實例)。
使用這個常量,除了會影響到一些基本的框架行為外(見下一章節),在開發過程中你還可以使用常量來區分當前運行的是什么環境。
引導文件?
CodeIgnite 要求在 APPPATH/Config/Boot 下放置一個與環境名稱匹配的 PHP 腳本文件。這些文件包含你想為你的環境所做的符合要求的任何定制,無論是更新對錯誤顯示的設置,還是加載附加開發工具,或者是添加其他東西。系統會自動加載這些文件。在新的版本中為你創建好了以下文件:
* development.php
* production.php
* testing.php