2012-04-05 17 views
2

特別捆我有一個使用FOSRestBundle Symfony的應用程序,並在主config.yml配置一些 設置:扭捏束配置僅適用於應用

fos_rest: 
    service: 
     serializer: my.serializer 
     view_handler: my.viewHandler 
    view: 
     view_response_listener: false 
     failed_validation: 200 

現在我建立新的公共API包,和我有以下問題。 當我測試瀏覽器從我的API,我得到

Unable to find template "". 
500 Internal Server Error - InvalidArgumentException 

它從 捲曲的作品。我猜是因爲瀏覽器向HTML內容類型失敗,並 我不需要任何模板,我只是想返回XML/JSON是這樣的:

return $this->get('fos_rest.view_handler')->handle(View::create(array('x' => 'y'))); 

我使用與更新配置解決這個問題:

fos_rest: 
    service: 
     serializer: my.serializer 
     view_handler: my.viewHandler 
    view: 
     view_response_listener: false 
     failed_validation: 200 
    format_listener: 
     default_priorities: [xml, json] 
     fallback_format: xml 

但後來我打破了一些在exise應用程序中的操作(其他的軟件包 使用FOSRestBundle)。 有沒有辦法調整FOSRestBundle(或任何其他包)配置 只爲我的公共APi捆綁? 我試圖與擴展:

$loader = new YmlFileLoader($container, new FileLocator(__DIR__.'/../ 
Resources/config')); 
     $loader->load('services.yml'); 

其中services.yml是:

fos_rest: 
    service: 
    view_handler: my.public.api.view_handler 
    format_listener: 
    default_priorities: [xml, json] 
    fallback_format: xml 

但我得到:

InvalidArgumentException: There is no extension able to load the 
configuration for "fos_rest". 

回答

2

當你被作曲家安裝包,你需要添加手動綁定到app/AppKernel.php:

public function registerBundles() 
{ 
    $bundles = array(
     // ... 
     new FOS\RestBundle\FOSRestBundle(), 
     new JMS\SerializerBundle\JMSSerializerBundle(), 
     // ... 
    ); 
} 

Here is more info.

相關問題