すべてのプロジェクトには、この情報を保持する config.php ファイルが含まれている必要があります。
config.php
define('ENVIRONMENT', 'PRODUCTION');
// define('ENVIRONMENT', 'TESTING');
// define('ENVIRONMENT', 'DEVELOPMENT');
switch (ENVIRONMENT) {
case 'PRODUCTION':
define('BASE_URL', 'http://www.mysite.com');
define('BASE_PATH', '/');
break;
case 'TESTING':
define('BASE_URL', 'http://test.mysite.com');
define('BASE_PATH', '/test/');
break;
case 'DEVELOPMENT':
define('BASE_URL', 'http://localhost/');
define('BASE_PATH', '/www/myproject/');
break;
}
次に、URL ヘルパー ファイルがあるかもしれません。
url_helper.php
function site_url($relative) {
return BASE_URL . $relative;
}
function redirect($uri = '', $method = 'location', $http_response_code = 302) {
if ( ! preg_match('#^https?://#i', $uri)) {
$uri = site_url($uri);
}
switch($method) {
case 'refresh' : header("Refresh:0;url=".$uri);
break;
default : header("Location: ".$uri, TRUE, $http_response_code);
break;
}
exit;
}
そしてロードヘルパー。
load_helper.php
function load_file($uri) {
require BASE_PATH . $uri;
}
function load_class($class) {
if ( ! class_exists($class))
load_file('class/' . $class);
}
これらの関数は、ニーズに合わせてより堅牢にすることができます。利点は、本番/開発、さまざまなサーバー、または単に特定の環境に対して異なる構成を使用できることです。いつも site_url 関数を使用してサイトの URL を生成している場合、1 つのファイルを 1 つ変更するだけで、URL の解釈方法を簡単に変更できます。