![](/img/trans.png)
[英]Symfony2 Email subject translation. Difference between Command and Controller
[英]What is the difference between generated Symfony2 controller and FOSRestBundle controller?
我對這個問題感到困惑,如果有人可以給我一個具體例子的解釋,我將非常感激。 我使用Symfony生成了CRUD控制器,還為REST實現了FOSRestBundle控制器。 它們都返回相同的數據,我想知道,兩者之間有什么區別,而另一個則不能做什么? 在此我只想堅持一個我正在創建和擴展的原型中的原型,因為我了解Symfony2的更多工作方式。 這是Symfony2的CRUD代碼:
/**
* Lists all User entities.
*
* @Route("/", name="user")
* @Method("GET")
* @Template()
*/
public function indexAction()
{
$em = $this->getDoctrine()->getManager();
$entities = $em->getRepository('SomethingWebServicesBundle:User')->findAll();
return array(
'entities' => $entities,
);
}
通過更改此方法名稱,我得到了FOSRestController(正確完成了配置)
// "get_users" [GET] /users
public function getUsersAction()
{
$em = $this->getDoctrine()->getManager();
$entities = $em->getRepository('SomethingWebServicesBundle:Users')->findAll();
return array(
'entities' => $entities,
);
}
它們都是控制器,您應該只使用一個來完成相同的任務。
默認的symfony控制器只是一個具有便捷方法的類,可輕松訪問最常用的東西(例如,創建表單,重定向等)。 您不必擴展此控制器,它只是給您一些“附加”。
FOSRestController擴展了Symfony控制器,並在使用FOSRestBundle時添加了一些簡便的方法。 同樣,您不必使用它,它只是為您簡化了代碼。
話雖如此,控制器並沒有做任何特別的事情。 您可以完全跳過它們並使用您自己的東西,很多人還希望不從基本控制器擴展,因為這暗示了Service Locator反模式。
要獲得有關FOSRestBundle可以做什么的答案,您應該閱讀他們的文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.