2014-09-17 4 views
0

내 laravel 4 프로젝트에 여러 환경이 설정되어 있습니다.패키지 용 Laravel 4 개의 개별 설정 파일

환경 설정은 다음과 같습니다. 개발은 '개발'이라고하며 생산은 '생산'이라고합니다. 내 app/config 폴더에 두 개의 추가 폴더가 있습니다. 환경 이름마다 하나씩.

페이지의 스크린 샷 : 나는 database.php 및 app.php에 대해 별도의 설정 파일이이 폴더 내부

enter image description here

. 이들은 예상대로 작동합니다. Laravel은 로컬에서 실행될 때 내 로컬 데이터베이스 구성을 사용하고 실제 실행 중에는 프로덕션을 사용합니다.

이제 config 파일을 필요로하는 새 패키지를 추가했습니다. 이것은 /app/config/packages/greggilbert/config.php에 있습니다.

데이터베이스와 동일한 방식으로 다른 구성 파일을 설정할 수 있어야합니다. 그래서, 나는 /development 또는 /production에 같은 파일 구조를 만드는 것이 가능하다고 생각했지만, 그렇지는 않습니다.

enter image description here

+1

환경 이름의 폴더를 패키지 디렉토리에 넣어야합니다 :'app/config/packages////config.php' – Quasdunk

+0

@Quasdunk 받아 들일 것입니다. – CharliePrynn

답변

1

패키지 관련, 환경 별 구성 파일이 환경의 이름을 딴 하위 디렉토리 내에서 패키지의 디렉토리에 배치 할 수 있습니다 여기에

새로운 스크린 샷이다. 따라서 귀하의 경우이

app 
    - config 
     - packages 
     - greggilbert 
      - recaptcha 
       - development 
        - config.php 
       - production 
        - config.php 

것 그러나 어떤 경우에는 정말 추한 및 성가신 얻을 수 있습니다. 이것은 응용 프로그램의 루트 디렉토리에 enviroment files을 통해 (내 생각에) A의 깨끗하고 우아한 방법을 해결할 수 있습니다

/.env.development.php

<?php 
return [ 

    // any configuration settings for your local environment 

    'RECAPTCHA_TEMPLATE' => 'customCaptcha', 
    'RECAPTCHA_LANGUAGE' => 'en', 

]; 

그런 식으로, 당신은 떠날 수 패키지 디렉토리는 그대로 :

app 
    - config 
     - packages 
     - greggilbert 
      - recaptcha 
       - config.php 

Laravel은 환경에 따라 환경 파일을로드하고 getenv()을 통해 전 세계적으로 사용할 수있는 환경 변수를 만들 것입니다. 이제 config.php에서 getenv('RECAPTCHA_TEMPLATE')으로 현재 환경에 지정된 템플릿을 가져올 수 있습니다.