3

これが私の状況です。すべてのフォルダー間で共有したいconfig.phpファイルがあります。それは私のルートにあります:includes/config.php

私は自分の管理フォルダーにいて、その構成ファイルを含めようとしています。

// Does not work
require_once "../../includes/config.php";

// This will kind-of-work.. see below
require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/config.php";

2行目の問題は、3つの異なる環境があることです。ローカルホスト、開発、および本番。

これらの環境とすべての設定をconfig.phpで定義します。私が本番環境にいる場合、その2番目のラインは完璧に機能します。しかし、私の開発環境とローカルホスト環境では、ファイルはルートディレクトリになく、サブフォルダにあります。したがって、それが機能する唯一の方法は次のとおりです。

require_once $_SERVER['DOCUMENT_ROOT'] . "/sub_folder/includes/config.php";

さて、環境に応じてconfig.phpファイルにPATH定数がありますが、そのファイルをインクルードしようとしているため、アクセスできません。

ですから、これにアプローチする最善の方法がわかりません。これが理にかなっていることを願っています。

どんな助けでも大歓迎です!

4

1 に答える 1

3

設定ファイルをphpではなく.iniファイルとして実行する場合。あなたはという関数を持っています

parse_ini_file($filePath);

iniファイルでは、「本番」、「開発」、「ステージング」環境を定義できます。

これは、スケーラビリティを向上させるためのより良い方法です。

iniファイルの構文については、このwikiページで詳しく説明されています。

http://en.wikipedia.org/wiki/INI_file

可能性のあるphpファイルを使用する場合は、config.phpで環境を定義し、すべての定数の条件をラップします。

の場合、使用できるディレクトリ構造

realpath(dirname(__FILE__))

これはより良いです

$_SERVER['DOCUMENT_ROOT']

お役に立てれば..

Karthik

于 2012-06-27T13:40:34.593 に答える