如何区分Symfony控制器中的Action或Method

时间:2018-02-19 09:43:43

标签: php symfony naming-conventions

当我必须在 Symfony Controller 中创建方法时,我按惯例在控制器的所有方法中添加后缀Action

但我想问一下,规则是否要添加Action sufix?

如果某个功能未返回任何布局响应仍然是Action

示例:

// src/AppBundle/Controller/BlogController.php
namespace AppBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class BlogController extends Controller
{
  public function showAction($slug)
  {
      // ...
      return $this->render("foo.html.twig")
  }

  public function eraseElement($element)
  {
      // ...
      return true;
  }
}

2 个答案:

答案 0 :(得分:4)

从技术上讲,一个动作。它是绑定到某些URI模式的操作,如果您尝试加载该URI,则会被调用。但同时它是无效控制器,因为symfony控制器必须返回响应。如果他们没有这样的错误:

Error: The controller must return a response (true given).

Action后缀如何 - 如果您使用YAML格式使用b:c:m路由,则必不可少,因为该方法根本不会被识别为操作。如果您使用Annotations路由,则可能有一个没有后缀的方法,但它仍然是添加&#34; Action&#34;的最佳做法,即使它不是必需的。< / p>

有关更多信息,请阅读以下链接:

答案 1 :(得分:3)

在symfony最佳实践中,您可以阅读:

  

第一个Symfony版本要求控制器方法名称结束   在行动中(例如newAction(),showAction())。这个后缀变成了   为控制器引入注释时可选。在现代   Symfony应用此后缀既不是必需的也不是推荐的,   所以你可以安全地删除它。

在现代Symfony应用程序中,使用注释是最佳实践:

  

此外,使用注释进行路由,缓存和   安全性简化了配置。你不需要浏览数十个   用不同格式(YAML,XML,PHP)创建的文件:所有   配置就在您需要的地方,它只使用一种格式。

the link