2016-06-25 2 views
1

내 symfony 앱의 경우 기존 "dev"및 "prod"외에 새로운 환경 "qa"를 만들어야합니다.새로운 환경에 필요한 새로운 route_xxx.php 파일을 만들거나 설치하는 방법

내가 포함한 웹/app_qa.php을 추가 한

...

$kernel = new AppKernel('qa', true); 

나는 응용 프로그램/설정에서 config_qa.yml 및 routing_qa.yml을 만들었습니다. 내가 실행하려고하면 ...

app/console server:run --env=qa 

나는 router_qa.php을 발견하지에 대한 메시지가 표시됩니다. 다른 환경의 파일 (router_dev.php 및 router_prod.php)은 vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config에 있습니다. 내가 사용하는 경우

app/console server:run --env=qa --router=vendor/symfony/.../router_prod.php 

(...는 경로의 나머지 부분을 나타냅니다.) 그러면 멋지게 시작됩니다.

내 config_qa.yml에 routing_qa.yml에 대한 스펙이 포함되어 있지만 router_prod.php를 지정하는 방법을 찾을 수 없습니다. router_prod.php를 app/config로 복사하면 시작시 여전히 시작되지 않은 것에 대해 불만이 제기됩니다. 심포니 벤더 트리에 복사본을 넣을 수는 있지만, 그게 깔끔한 것 같아요. 모든 배포를 위해 사본을 만들어야합니다.

올바른 방법에 대한 제안이 있으십니까?

내가 14.04.4 LTS

+0

http://symfony.com/doc/current/cookbook/configuration/environments.html 문서를 보았습니까? – fucethebads

+0

예, 그 요리 책 페이지가 제가 사용하고있는 페이지입니다. 괜찮아요. 라우터 _xxx.php 문제를 해결하는 방법은 언급하지 않았습니다. "app/console server : run"에 경로 스펙을 추가하여이 문제를 해결할 수 있지만 nginx에서는 작동하지 않습니다. – MgFrobozz

답변

0

다음 방법 우분투 심포니 2.5.12을 실행하는거야 추한,하지만 작동합니다.

  • 질문에 설명 된대로 How to Master and Create new Environments의 지침을 사용하여 web/app_qa.php 및 app/config/config_qa.yml을 생성했습니다.
  • app/Resources/config/router_qa.php를 추가했습니다. 이것은 'app.php'에 'app_qa.php'를 대체하는 vendor/symfony/symfony/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/router_prod.php 사본입니다.
  • app/Kernel을 수정하고 다음 :

    public function locateResource($name, $dir = null, $first = true) 
    { 
     if ($name == "@FrameworkBundle/Resources/config/router_qa.php") 
     { 
      return(__DIR__ . "/Resources/config/router_qa.php"); 
     } 
     return(parent::locateResource($name, $dir, $first)); 
    } 

을 (이 의심 할 여지없이 쉽게 한 줄의 접근 방식, 그러나 나는 독서 심포니 문서의 몇 시간에서 그것을 찾을 수 없습니다).

관련 문제