1

Web アプリケーションを開発し、そのソース コードを公開 Github リポジトリにプッシュします。問題は、PHP コードにデータベース資格情報が含まれていることです。これは他の人には見えてはなりません。

今、私はこれを処理する良い方法を探しています。を使用して Git リポジトリから構成ファイルを除外することはできました.gitignoreが、他のユーザーは独自の構成を作成するための構造を確認できませんでした。一方、コミットごとに実際の資格情報を手動で置き換えたくありません。

この機密情報をオープンソース ソフトウェアのソース コード内で処理するには、どうすればよいでしょうか?

4

2 に答える 2

5

これらの場合に私が通常行うことは、デフォルトのプロパティ セットがバージョン管理され、ソースと共にコミットされる 2 層構成を許可することですが、その後、開発者は、発見された場合に使用される外部ファイルを提供し、デフォルトを置き換えることができます。設定ベースごと。これは資格情報を外部化するのに役立つだけでなく、必要に応じてオーバーライドできるスレッド数、接続プール サイズなどをデフォルトにすることもできます。重要なことに、彼らは常に完全な構造を見ることができます。あなた自身が、使用する実際の資格情報を含む独自の外部オーバーライド ファイルを持つことになります。しかし、デフォルトはあなたがチェックインする偽物です。

PHP を使用していることは知っていますが、例として Java の場合、おおまかに次のようになります。

Properties defaultProps = loadDefaults();
Properties overrideProps = loadOverridesIfFound();
for(String name : overrideProps.keySet()) {
   defaultProperties.put(name,overrideProps.get(name));
}

この手法は、多くのプロジェクトで非常に効果的であることがわかりました。

于 2013-11-03T12:19:57.477 に答える
1

単純.gitignoreに実際の構成ファイルを作成し、接尾辞 を付けて空のコピーを追加することができます(configDefault.php)。これにより、アプリケーションを実行する前に、ユーザーが実際に構成を確認できるようになります。

于 2013-11-03T12:29:40.447 に答える