我想爲每個環境配置view.yml。爲每個環境配置view.yml
在生產中:
default:
http_metas:
content-type: text/json
在開發:
default:
http_metas:
content-type: text/html
我需要這個,因爲我想調試與網頁調試工具JSON響應。所以,我基本上需要設置每個環境的響應內容類型。是否有可能做到這一點?如果沒有,什麼是正確的地方掛鉤?
我想爲每個環境配置view.yml。爲每個環境配置view.yml
在生產中:
default:
http_metas:
content-type: text/json
在開發:
default:
http_metas:
content-type: text/html
我需要這個,因爲我想調試與網頁調試工具JSON響應。所以,我基本上需要設置每個環境的響應內容類型。是否有可能做到這一點?如果沒有,什麼是正確的地方掛鉤?
你不能在view.yml中完成而不需要重寫整個視圖配置處理程序。我想有一對夫婦爲這個具體的例子替代品:
你可以使用它允許你指定不同的配置文件,不同尺寸的ysfDimensionsPlugin。
你可以通過在過濾器鏈中添加或擴展過濾器來實現這一點,我想我會通過擴展sfRenderingFilter來做到這一點。
但是,如果您只是想檢查JSON輸出,爲什麼不使用Firebug或Web Inspector?
打開文件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;
}
更改供應商源代碼絕不是一個好主意。 –
不,我想檢查數據庫調用等。在web調試工具欄,如果它是html內容類型,則它只被注入到響應中。 – Dziamid