現在、データベース駆動型の Web サイトの多くの更新に取り組んでいます。
したがって、すべてのページに含まれる db.php と呼ばれる webroot にファイルがあります。これには、SQL データベースへの接続の詳細が含まれています。これは、ライブ データベースにデフォルト設定されます。
db.local.php というファイルもあります。ここで、このファイルが存在する場合、その中の接続の詳細がデフォルト値を上書きします。したがって、このファイルは各セットアップに固有であるため、ソース管理下に置かれません。
次のようにして、ファイルが存在するかどうかを確認します。
if(file_exists(getcwd().'/db.local.php')) {
require_once('db.local.php');
} else {
//default database details
}
問題は、webroot だけでなく、複数のフォルダーからこのファイルを使用することです (たとえば、webroot/admin から呼び出されるスクリプトの cwd は、webroot ではなく webroot/admin になります)。したがって、db.php が別のフォルダーのスクリプトから呼び出された場合、現在の作業ディレクトリは webroot ではないため、db.local.php は表示されません。間違ったデータベースを使用しているため、これは悪いことです。
これを回避する方法はありますか?(スクリプトが実行されている場所ではなく、プルされたファイルのディレクトリを確認する方法のようなものです)。または、この問題に対して、実装されているものよりも優れたアプローチがありますか?