1

開発環境として localhost で実行されているサイトと、運用用のサーバーがあります。

サーバーの変更を更新する必要があるたびに、両者の間でいくつかの構成ファイルにいくつかの違いがあり、異なるファイルを上書きしないように注意する必要があります。

各環境に適切な構成で 1 つのファイルを作成するだけで、このプロセスを簡素化できるようにしたいと考えています。

現在、この構成ファイルにあるそのファイルを読み取る必要があります。

  • app/Config/email.php
  • app/Config/routes.php

そして理想的には、可能であれば:

  • app/Vendor/Vendor_name/vendor_file.php

なんとなく可能ですか?

public $smtpConfigure::read と Configure::write を使用しようとしましたが、routes ファイルなどの電子メール設定内では実行できないようです。

タク。

4

2 に答える 2

2

ルート ファイルは、ルーターへの呼び出しを含む単純な php ファイルです。非常に単純に、複数のファイルに分割して自分でロードすることができます:

app/Config/
  routes.php
  routes_dev.php
  routes_production.php

routes.php次に、適切なルート ファイルをロードします。

<?php
if ($env == 'dev') {
  include 'routes_dev.php';
} else {
  include 'routes_production.php';
}

電子メール構成も単なる php ファイルです。環境に基づいて適切なデフォルト構成を設定する関数を作成できます。

class EmailConfig {

  public function __construct() {
    if ($env == 'dev') {
      $this->default = $this->dev;
    }
  }

  public $default = array(
      'host' => 'mail.example.com',
      'transport' => 'Smtp'
  );

  public $dev = array(
      'host' => 'mail2.example.com',
      'transport' => 'Smtp'
  );

}

ベンダー ファイルに関しては、ケースバイケースです。

展開システムがある場合は、実際には環境ごとに個別のファイル (場合によっては完全な構成ディレクトリ) を用意し、展開のビルドが完了した後にそれらの名前を変更して、Cake とコードを賢くしない方がよい場合があります。

于 2013-01-15T16:16:08.263 に答える
0

この状況を処理するために使用した方法は、apache仮想ホスト構成に環境変数を追加することでした。

SetEnv cake_apps_path /var/www/apps/
SetEnv cake_libs_path /var/www/libs/

これにより、$ _SERVER['cake_apps_path']と$_SERVER['cake_libs_path']をプルできるようになりました。次に、各開発者は自分の仮想ホスト構成で自分の変数を設定でき、それをサーバーの仮想ホスト構成に追加すれば完了です。各開発者は、独自のパスを持つことができます。

于 2013-01-15T16:48:28.260 に答える