2011-08-24 6 views
0

환경마다 view.yml을 구성하고 싶습니다. 생산에서환경마다 view.yml 구성

:

default: 
    http_metas: 
    content-type: text/json 

DEV에서 : 나는 웹 디버그 툴바와 JSON 응답을 디버깅 할 때문에

default: 
    http_metas: 
    content-type: text/html 

나는이 필요합니다. 따라서 기본적으로 환경별로 응답 유형을 설정해야합니다. yml 할 수 있습니까? 그렇지 않은 경우 어떤 곳으로 연결해야합니까?

답변

1

전체보기 구성 처리기를 다시 작성하지 않고도 view.yml에서 수행 할 수 없습니다.

  • 당신은 다른 설정 파일과 다른 차원을 지정할 수 있습니다 ysfDimensionsPlugin을 사용할 수 있습니다 :이 특정 예를 들어 대안의 부부가 가정합니다.

  • 필터 체인에 필터를 추가하거나 확장하여이 작업을 수행 할 수 있습니다. sfRenderingFilter를 확장하여이 작업을 수행한다고 가정합니다.

그러나 JSON 출력을 검사하려면 Firebug 또는 Web Inspector를 사용하지 않는 것이 좋습니다.

+0

아니오, 나는에 등등 데이터베이스 호출을 검사하고 싶습니다 웹 디버그 툴바는 html content-type 인 경우에만 응답으로 주입됩니다. – Dziamid

0

파일 열기 lib/symfony/config/sfViewConfigHandler.class.php

지금 아래로 "mergeConfig" 기능을 대체하고 문제가 해결됩니다 :)

protected function mergeConfig($myConfig) 
    { 
    // merge javascripts and stylesheets 
    $myConfig['all']['stylesheets'] = array_merge(isset($myConfig['default']['stylesheets']) && is_array($myConfig['default']['stylesheets']) ? $myConfig['default']['stylesheets'] : array(), isset($myConfig['all']['stylesheets']) && is_array($myConfig['all']['stylesheets']) ? $myConfig['all']['stylesheets'] : array()); 
    unset($myConfig['default']['stylesheets']); 

    $myConfig['all']['javascripts'] = array_merge(isset($myConfig['default']['javascripts']) && is_array($myConfig['default']['javascripts']) ? $myConfig['default']['javascripts'] : array(), isset($myConfig['all']['javascripts']) && is_array($myConfig['all']['javascripts']) ? $myConfig['all']['javascripts'] : array()); 
    unset($myConfig['default']['javascripts']); 

    // merge default and all 
    $myConfig['all'] = sfToolkit::arrayDeepMerge(
     isset($myConfig['default']) && is_array($myConfig['default']) ? $myConfig['default'] : array(), 
     isset($myConfig['all']) && is_array($myConfig['all']) ? $myConfig['all'] : array(), 
     isset($myConfig[sfConfig::get('sf_environment')]) && is_array($myConfig[sfConfig::get('sf_environment')]) ? $myConfig[sfConfig::get('sf_environment')] : array() 
    ); 
    unset($myConfig['default']); 
    $this->yamlConfig = $myConfig; 
    } 
+1

벤더 소스 코드를 변경하는 것은 결코 좋은 생각이 아닙니다. –