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

모든 설정이 코드 전체에 분산되어 있기 때문에이 접근법이 장기적으로 최적이라고 생각하지 않습니다. 예를 들어 매우 어렵습니다. 세 번째 서버 환경 (예 : 라이브 스테이징 서버)을 추가하십시오.

어떤 서버가 실행 중인지에 따라 모든 구성 값을 한 지점에서로드하는 일종의 중앙 구성을 사용하는 것이 좋습니다.

관련 :

1

당신이 getenv('REMOTE_ADDR');을 시도 할 수 있습니다 만약 당신이 창피 같은 슈퍼 전역 변수

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

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

'is_localhost (...)'는 우리가 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; 
} 

내 의견보다 간결하고 깨끗한 함수 이름으로

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

// Or simply use a Superglobal ($_SERVER or $_ENV) 
$ip = $_SERVER['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?

관련 문제