依赖注入:在控制器中获取参数
Dependency injection : Get Param in controller
我正在将应用程序从 Symfony 2.8 迁移到 Symfony 3.4
服务现在是私有的,因此我们必须使用依赖注入作为解决方法,而不是直接从容器调用服务。
对于参数,$this->getParameter()是反模式吗?如果是,我们如何才能将它们置于控制器中,当然我们必须始终尊重良好做法?
有关信息,Symfony 4.1 中有一个解决方案,使用 services.yml 中的 bind
这是以下脚本,并且以 环境 为例:
class CmsController extends Controller
{
/**
* @param Request $request
*
* @return Response
*/
public function importExportAction(Request $request): Response
{
$adminPool = $this->get('sonata.admin.pool');
$env = $this->getParameter('environment');
return new Response('OK');
}
}
控制器现在被视为服务。
您可以查看this anwser,了解如何使用参数配置服务。
我正在将应用程序从 Symfony 2.8 迁移到 Symfony 3.4
服务现在是私有的,因此我们必须使用依赖注入作为解决方法,而不是直接从容器调用服务。
对于参数,$this->getParameter()是反模式吗?如果是,我们如何才能将它们置于控制器中,当然我们必须始终尊重良好做法?
有关信息,Symfony 4.1 中有一个解决方案,使用 services.yml 中的 bind
这是以下脚本,并且以 环境 为例:
class CmsController extends Controller
{
/**
* @param Request $request
*
* @return Response
*/
public function importExportAction(Request $request): Response
{
$adminPool = $this->get('sonata.admin.pool');
$env = $this->getParameter('environment');
return new Response('OK');
}
}
控制器现在被视为服务。
您可以查看this anwser,了解如何使用参数配置服务。