8

私はRoR開発者ですが、現在、サーバーを微調整できないプロジェクトでCakePHPを使用しています。私のRails本番サーバーでは、Passengerは「本番」環境を自動的に使用するように設定されており、ローカルアプリの設定を上書きします。同じことをするようにcakephpアプリをセットアップしたいと思います。通常、CakePHPでそれをどのように達成しますか?ドメインパーサーを設定しますか、それともcore.phpとdatabase.phpをバージョン管理の対象外にしますか?よろしくお願いします、Davide

4

4 に答える 4

13

私が質問を正しく理解した場合、これはあなたが必要とするものかもしれません:

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;
        }
    }
}
于 2009-06-29T10:44:31.460 に答える
9

bootstrap.phpでprod/devを定義する方が良いかもしれません。そうすれば、アプリ全体で定数を再利用できます。

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
);
于 2013-06-01T20:07:21.463 に答える
1

単一のConfigure::write('debug', 0)*ディレクティブを保持する追加のファイルを作成し、それをcore.phpファイルにインポートして、バージョン管理の対象外にすることができます。両方の長所。

*またはその他の変更が必要なもの

于 2009-06-29T07:10:21.237 に答える
1

データベースの場合、ローカル接続と本番接続の設定をセットアップしてから、ファイルapp / app_model.phpを作成し、次の行を含めることができます。

class AppModel extends Model
{
  var $useDbConfig = 'production';
}

次に、ファイルapp / app_controller.phpを作成し、ドメインを解析して、Configure :: writeを使用して、使用するdbconfigとその他のcore.php設定を指定できます。

于 2009-06-29T07:13:48.483 に答える