2013-12-15 38 views
1

我對Symfony 2真的很陌生,來自CI,並試圖讓我頭腦清晰,正確的地方一切都應該去。我有一個包含我所擁有的幾種主要頁面類型的包,但這裏有一個頁面元素,我在多個頁面中使用,每個頁面可以有不同的配置。我的非操作/控制器類在哪裏捆綁?

圍繞這一點的邏輯方法(據我所知)是讓所有頁面都可以使用一個類...這不會被用戶訪問,因此不應該進入控制器我猜,但我應該在哪裏放這個班?

  1. 在我的包中創建'core'類型的文件夾。有沒有爲此命名最佳實踐?
  2. 它應該放在供應商文件夾中,還是僅供第三方軟件包使用?
  3. 使另一個包以某種方式使用此代碼...似乎有點矯枉過正一個或兩個類?
  4. 其他?

回答

2

我想你需要的是創建一個服務。您可以創建自己的具有自己邏輯的類,並使用控制器中的服務容器來檢索它。下面的例子可在Symfony Service Container Docs

$mailer = $this->get('my_mailer'); 
$mailer->send('[email protected]', ...); 

爲了使可用的類,你必須將其添加到您的綁定這樣的service.yml文件:

services: 
    my_mailer: 
     class:  "%my_mailer.class%" 
     arguments: ["%my_mailer.transport%"] 

您可以添加任何其他服務或參數給你的班級通過參數

更多的信息在這裏:http://symfony.com/doc/current/book/service_container.html