2010-12-30 4 views
0

時々、コードがテスト環境で実行されるかリモートホストで実行されるかによって異なる値を使用する必要があります。環境に依存する値

function localhost($local_host_value, $remote_host_value = "") 
{ 
    if($_SERVER["REMOTE_ADDR"] == "127.0.0.1") 
    { 
     return $local_host_value; 
    } 
    else 
    { 
     return $remote_host_value; 
    } 
} 

あなたはよりエレガントなアプローチを提案するか、上に引用した機能のために、少なくとも、より良い名前でした:?私は次の関数を使用してきたことに対処するために

+0

うーん...コードは常にローカルホスト上で実行される:P – Mchl

+0

@Mchlを、地元のことで、私はテスト環境(127.0を意味しました。 0.1)。適切な用語は何でしょうか? –

+0

「テスト環境」は適切な用語になります;) – Mchl

答えて

1

すべての設定がコード全体に分散されているので、このアプローチは長期的には最適ではないと思います。たとえば、第3のサーバー環境(例えば、ライブステージングサーバー)を追加します。

私は、実行中のサーバによっては、一度にすべての設定値をロードするような、ある種のセントラル設定を使用することを検討します。

関連:

1

あなたはDISのようなスーパーグローバル変数

// Example use of getenv() 
$ip = getenv('REMOTE_ADDR'); 

// Or simply use a Superglobal ($_SERVER or $_ENV) 
$ip = $_SERVER['REMOTE_ADDR']; 
関数名用として

function is_localhost(...) <-- more like determine is local host (boolean) 

function get_host_value(...) <-- (string) 
+2

私のために 'is_localhost(...)'はローカルホストにあるブール値を返すかどうかを示唆しています... 'get_value_for_host(...)'または 'get_host_value(...)'をよりわかりやすいように表示します – maid450

+0

@ maid450 - 同意する – ajreal

1
function localhost($local_host_value, $remote_host_value = '') { 
    return $_SERVER['REMOTE_ADDR'] == '127.0.0.1'? $local_host_value : $remote_host_value; 
} 

を使用しては、私の意見では、より簡潔であり、汚れていた場合getenv('REMOTE_ADDR');を試すことができますが、まったく同じです。 かのgetenvとajrealの通り:関数名について

function localhost($local_host_value, $remote_host_value = '') { 
    return getenv('REMOTE_ADDR') == '127.0.0.1'? $local_host_value : $remote_host_value; 
} 

を、多分get_host_value(...)は私の選択

PS次のようになります。あなたの文字列は、変数が含まれていない場合に、単一引用符の代わりに二重引用符を使用してみてください:Is there a performance benefit single quote vs double quote in php?

関連する問題