【发布时间】:2014-06-03 03:38:09
【问题描述】:
我在 Symfony 上开始了一个项目,而不是从头开始。 我想就我在此应用程序中找到的一种编码方式获得您的反馈。
应用程序作为很多业务类。其中一些类需要与实体管理器、翻译器、存储在会话中的一些数据一起使用......所有可从控制器(也)获得的对象。
所以其中一些类在构造函数中接收到控制器对象,将其存储为成员并稍后在方法中使用它。一种自定义注入。
这是一个代码示例(不完整,只是为了展示机制):
在控制器中:
/**
* @Route("/gac/print/{param}", name="_gac_print")
* @Template()
*/
public function printAction($param)
{
$printerTool = new PrinterTool($this); //PrinterTool is a custom business class
$printerTool->printToFile($param);
}
商务舱:
类打印机工具{
private $controller;
public function __construct($controller)
{
$this->controller = $controller;
$user = $this->controller->get('security.context')->getToken()->getUser();
$this->userId = $user->getId();
}
public function printToFile($param)
{
$trans = $this->controller->get('translator');
$em = $this->controller->getDoctrine()->getEntityManager();
//Use those to do some business logic
}
};
我是否必须考虑使用正确的注入来重写这段代码,或者这是可以保留的东西。
谢谢!
【问题讨论】:
标签: php symfony controller share