2014-10-22 3 views
0

그래서 저는 PHP 프로젝트를 위해 두 개의 주요 라이브러리를 사용합니다 : php-activerecord와 slim micro framework. 나는 또한 얼버무 리기와 인형극의 사용자이기 때문에 동기를 유지하고 싶어한다. 이 시점에서 내 머리를 감쌀 수없는 것 중 하나는 내 코드가가는 여러 환경을 관리하는 것입니다. 내가 언급 한 두 개의 라이브러리가 이것을 관리하는 메커니즘을 제공하려고 시도하지만이 정보를 어디에 두어야 하는지를 알 수 없습니다.환경 변수를 효과적으로 사용하는 방법

//This is the config for php-AR 
ActiveRecord\Config::initialize(function($cfg){ 
    $cfg->set_model_directory('models'); 
    $cfg->set_connections(array(
     //This is what I am interested in 
     'development' => 'mysql://username:[email protected]/database_name')); 
}); 

슬림에는 환경 설정도 있습니다. 이러한 환경 설정은 모두 $ _SERVER 수퍼 글로벌에 기반한 설정 파일을 기반으로합니까?

어떻게 정상적으로 관리됩니까? 나는 대부분 더 큰 환경에 호기심이 많다.

편집 1) 조금만 더 명확하게 말하십시오. 내가 사용하는 서버 내에서 코드 및 설정에 추가 된 논리에 대해 궁금합니다. 나는 이것이 약간 넓으므로 아래를 보라.

환경 변수를 가져 오기 위해 .htaccess가 언급 된 많은 용도를 보았습니다. 필자가 언급 한 것처럼 PHP는 $ _SERVER 슈퍼 글로벌을 가지고있어서 로직을 만들 수 있습니다. Diederik에게 감사드립니다. 이제 ~/.bash_profile을 사용할 수 있습니다.

+0

귀하의 질문이 정확하게 무엇인지 모르겠습니다. 환경 변수를 어디에 정의 할 것인가, 아니면 코드에 환경 변수를 어떻게 구현할 것인가? 아니면 둘다? – Diederik

+0

내 코드에서 로직을 구현하는 방법을 묻는 중입니다. 좀 더 구체적으로 업데이트 할 수 있습니다. – nerdlyist

답변

1

ActiveRecord에 대한 추가 정보를 보셨습니까? 그것은 이것을 달성하는 방법을 분명하게 명시하고 있습니다. 위에서 게시 한 코드에서 이미 개발 데이터베이스를 정의합니다. 원하는만큼 새로 추가 할 수 있습니다. 다른 서버에 업로드 한 후에 변경해야 할 부분은 다음과 같습니다.

ActiveRecord\Config::initialize(function($cfg) 
{ 
    $cfg->set_default_connection(your_environment); 
}); 

이제 your_environment를 먼저 정의해야합니다. 다음과 같이하면됩니다.

$cfg->set_default_connection(getenv('APP_ENV')); 

그런 다음 환경 변수를 정의하면됩니다. 이것은 여러 가지 방법으로 수행 할 수 있습니다. 예를 들어 ~/.bash_profile에 다음을 넣는 것입니다.

export APP_ENV="development" 

이렇게해야합니다.

+0

고마워. 매우 도움이되었다. 그게 맞긴하지만이 제안으로 일부 코드를 변경해야 할 것 같습니다. 환경을 설정하는 방법을 찾으려고 노력 중입니다. 코드가 업데이트되면 제한적입니다. – nerdlyist

+1

정말 당신이 원하는 것에 달려 있습니다. 분명히 데이터베이스 설정을 개인화해야합니다. ~/.bash_profile에 대한 내보내기는 각 환경마다 다를 필요가 있으므로 해당 환경을'set_connections' 배열에 추가해야합니다. 게다가 그다지 큰 변화가 필요하지 않습니다 ... – Diederik

관련 문제