我是一名RoR開發人員,但我目前正在使用CakePHP來處理一個無法調整服務器的項目。在我的Rails製作服務器中,Passenger被設置爲自動使用「Production」環境,覆蓋本地應用程序設置。我想設置我的cakephp應用程序來做同樣的事情。您通常如何使用CakePHP完成這項工作?你是否設置了一個域解析器,或者你只是將core.php和database.php放在版本控制之外? 由於提前, 達維德如何配置CakePHP來檢測我的開發/生產環境,或者只是將配置文件保留在版本控制之外?
6
A
回答
11
如果我明白問題的正確,這可能是你需要的東西:
Automatically choose database connections in CakePHP
簡言之,覆蓋DATABASE_CONFIG
構造:
class DATABASE_CONFIG
{
//initalize variable as null
var $default=null;
//set up connection details to use in Live production server
var $prod =
array(
// ...
);
// and details to use on your local machine for testing and development
var $dev =
array(
// ...
);
function __construct()
{
if(isset($_SERVER['SERVER_NAME'])){
switch($_SERVER['SERVER_NAME']){
case 'digbiz.localhost':
$this->default = $this->dev;
break;
case 'digbiz.example.com':
$this->default = $this->prod;
break;
}
}
else // we are likely baking, use our local db
{
$this->default = $this->dev;
}
}
}
1
你可以只創建包含單Configure::write('debug', 0)
*指令一個額外的文件,導入,在core.php中的文件,並保持它的版本控制。兩全其美。
*或任何其他你需要改變
1
對於數據庫,你可以建立本地生產的連接設置,然後創建文件app/app_model.php,包括行:
class AppModel extends Model
{
var $useDbConfig = 'production';
}
然後,您可以創建文件app/app_controller.php並解析域,並通過使用Configure :: write來告訴它使用哪個dbconfig以及任何其他core.php設置。
7
這可能是更好的定義PROD/dev在bootstrap.php中。這樣你就可以在應用程序中重複使用常量。
bootstrap.php中:
define('IS_PROD',(isset($_SERVER['SERVER_NAME']) && $_SERVER['SERVER_NAME'] == 'cubismedia.com') ? true : false);
database.php中:
function __construct() {
if (IS_PROD) {
$this->default = $this->prod;
} else {
$this->default = $this->dev;
}
}
//development
public $dev = array(
//db settings
);
//production
public $prod = array(
//db settings
);
相關問題
- 1. SpringBoot:配置生產與開發環境
- 2. 你的配置文件是否保留在版本控制中?
- 3. 在非生產環境中測試生產配置文件
- 4. nodeJS開發和生產環境配置文件加載
- 5. Laravel 5.3。如何配置生產環境?
- 6. Maven配置文件 - 開發vs生產
- 7. 版本控制的生產環境
- 8. 如何在環境配置文件外設置ActionMailer SMTP設置
- 9. 開發或產品環境中的Rails diff模型配置
- 10. Magento:如何將配置更改從開發遷移到生產環境?
- 11. 如何在本地和生產環境中管理Laravel中的配置文件
- 12. 我如何確保生產,測試和開發環境,
- 13. ASP.NET配置文件版本控制?
- 14. Web開發生產/測試/開發環境設置
- 15. 在Silex中檢測環境類型(生產,開發或分期)
- 16. 配置WordPress網站的開發,分期和生產版本
- 17. Vagrant配置和正在開發的主題的版本控制
- 18. 連接池配置是否保留在JPA上下文之外?
- 19. 如何將配置文件從開發者版遷移到企業版?
- 20. 廚師和產品版本 - 不同產品版本的配置環境
- 21. 「AWS配置」不會使用環境變量或配置文件
- 22. 配置設置從開發者機器轉移到生產
- 23. 烘焙CakePHP配置控制檯配置文件
- 24. 使用環境變量或配置/環境來存儲配置值
- 25. 如何使用maven管理開發,生產,測試配置?
- 26. 如何在Spring中配置多個環境(開發/發佈)?
- 27. 在開發人員配置文件與配送配置文件之間切換
- 28. 環境配置
- 29. 如何在運行自動化測試之前配置環境?
- 30. 配置路徑在CSS圖片用於開發和生產環境
完美,正是啥子我一直在尋找 – nutsmuggler 2009-06-30 20:23:31
高興這篇文章幫助你:)請留下反饋 – Eddie 2009-07-06 15:57:45