質問: PHP+MySQLによるWebアプリケーションについて、参考意見をお聞かせください。 アプリケーション内で、DB情報やコンフィグ情報など、各ソースファイルで共通のファイルをinclude(require)すると思いますが、 1.どのようなコンフィグファイルにするか? 2.そのファイルをどこに置くか? 3.どのようにファイルを呼び出すか? という点でいつも悩んでしまいます。 現時点では 1.PHPの連想配列 2.public_htmlより上の階層のどこか 3.require_once('ファイルへのルートパス'); とすることが多いのですが、3が煩わしいです。 ローカルテストと本番とでパスが違うため、わざわざその処理を全ページに書くのも・・・ public_htmlより上の階層とはいえDB情報などを平文で書いているのも少し気がかりです。 皆さんは1~3をどうしていますでしょうか。
回答: > > 1.PHPの連想配列 > > > これはまぁ Apache の環境変数から取得するなりほかの方法もあるけど、あんまり大差ないですね。 結局何らかの方法で最終的にPHPの変数として取り出せることが絶対条件になりますから。 > > 2.public_htmlより上の階層のどこか > > > これはアプリの作り次第ですが、DocumentRoot と同階層で、Apache の公開ディレクトリでない場所に置きますね。 名前等はまぁわかるようになっていれば特にこだわりはありません。 > > 3.require_once('ファイルへのルートパス'); > > > .htaccess や Apache の設定ファイルで include_path を設定してやればいいです。 もしくはPHP側でも、相対パスで書くことも可能です。 ``` require_once( dirname(__FILE__) . '/../path/to/lib/lib.inc.php' ); ``` とか。 この場合ドキュメントルートからの相対位置が決まっていないとだめですけど。