インストールプロファイル中にsettings.phpをカスタマイズする方法


9

現在の社内プロジェクトのインストールプロファイルを作成しています。

インストールプロセス中init()に、で定義された1つのグローバル変数settings.php(モジュールの現在のデフォルトの動作)を使用しようとするため、カスタムモジュールの1つが中にクラッシュします。

使用してsystem_form_install_settings_form_alter()、私は、ユーザーの入力のための一つの入力テキストフィールドを追加することにより、設定フォームを変更して、上の値を提出することに追加されsettings.phpますが、settings.phpプロファイルのインストールを開始する前に書き換え中です。

settings.phpインストールプロセスによるクリーンアップを防ぐ方法はありますか?


1
おそらく、クラッシュしているモジュールにパッチを適用し、そのプロジェクトの課題キューに変更を送信する方が簡単でしょう。変更を受け入れる前に、インストールプロファイルのメイクファイルにパッチへの参照を追加できます。
greg_1_anderson 2012

こんにちは、回答ありがとうございます。これはカスタムの内部モジュール(contribモジュールではありません)ですが、はい、パッチを当てて問題を解決しました。
Paulo Gomes 2012

これは、settings.phpファイルをオーバーライドするsettings.local.phpファイルを使用することも役立つものですか?
2013年

このリンクは、私にとって大きな助けだったpreviousnext.com.au/blog/...
ヴィック

回答:


3

あなたはそれを使用する方が簡単かもしれません settings.common.php

多くの場合、チームプロジェクトの間に、settings.phpdb資格情報などを使用したローカルとsettings.common.php、インストールおよびデプロイメント環境に共通の設定を使用します。

settings.common.phpinclude / require行で追加できますsettings.php

require 'settings.common.php'; // same directory, e.g sites/default/settings.common.php

そして、インストール中に必要に応じてそれに書き込みます。


3

私の答えは、Apacheを使用するサーバーに依存しますが、他のWebサーバーもこれを実現できると思います。

virtualhost設定では、環境に合わせてすべての変数を設定できます。

SetEnv DBUSER datbase_user
SetEnv DBPASS database_pass
SetEnv DBNAME database_name
SetEnv DBHOST localhost

そしてsettings.phpファイルで:

$databases = array (
   'default' => 
   array (
     'default' => 
     array (
       'database' => $_SERVER["DBNAME"],
       'username' => $_SERVER["DBUSER"],
       'password' => $_SERVER["DBPASS"],
       'host' => $_SERVER["DBHOST"],
       'port' => '',
       'driver' => 'mysql',
       'prefix' => '',
    ),
   ),
 );

この方法で他の変数を設定することもできます。

$ _SERVER配列が悪用されるのではないかと心配している場合は、settings.phpの下部にある重要な変数をすべて設定解除できます。

unset($_SERVER["DBUSER"]);
unset($_SERVER["DBPASS"]);
unset($_SERVER["DBNAME"]);
unset($_SERVER["DBHOST"]);

これは、開発環境、ステージング、さらには本番環境の間でサイトを移動するためにオフィスで行う方法です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.