背景:symfony3
我刚刚发现控制器中的redirectToRoute
和addFlash
方法在symfony中受到保护。我有一个单独的行动类。
namespace AppBundle\Action;
class Base {
public function __construct($controller) {
$this->controller = $controller;
}
}
正如您所见,基本动作类需要一个控制器。基本上它是合乎逻辑的,因为动作类是控制器的一部分,应该可以访问它的所有方法。但是,由于受到保护,我无法致电$this->controller->addFlash
。如果它受到保护,那么可能有一些原因。我找不到它了。你可以请你告诉我如何改变我的动作类,以便它可以使用控制器方法。
关于从控制器扩展操作的变体不适合我,因为我在主控制器中有其他功能。它以适当的方式配置。
更新:我的目标是按责任分配控制器功能。我发明了一个动作类。我的结束代码如下所示:
public function editAction() {
$instance = new \AppBundle\Action\MyController\Edit($this);
return $insance->run();
}
在这种情况下,我保持控制器清洁,而不是冗长。