プライベートで作ってるアプリがそろそろリリースできそうということで、ちまちま準備しておりました。
その過程でDB設定を本番環境のDBサーバに合わせて変更する必要があったけど、環境が変わるたびにいちいちdatabase.php
を変えたりするのはめんどい。
方針として、開発環境と本番環境では動作するホストが異なるので、どうにかこれを利用して上手いことやりたい。
方法
AppModel.php
でコンストラクタをオーバーライドします。
<?php class AppModel extends Model { public function __construct($id = false, $table = null, $ds = null) { parent::__construct(); if($_SERVER['SERVER_NAME'] === 'localhost'){ $this->useDbConfig = 'development'; }else{ $this->useDbConfig = 'production'; } } }
database.php
に$development = ほにゃほにゃ
とか$production=ほにゃほにゃ
と書いておけば、本番環境にデプロイされた時は勝手に本番環境用の設定を読みに行ってくれます。うれしい。
ぐぐるとdatabase.phpにif文書く方法も出てくるのですが、設定ファイルに制御文書くのが個人的に嫌だったので、上記の方法にしました。