问题描述
我正在将应用程序从Symfony 2.8迁移到Symfony 3.4
这些服务现在是私有的,因此,必须使用依赖项注入作为解决方法,而不是从容器直接调用服务。
对于参数, $ this-> getParameter()是反模式吗?如果是,我们如何才能让他们成为控制者,当然我们必须始终遵守良好做法?
有关信息,请使用 services.yml
中的 bind 在 Symfony 4.1 中提供解决方案。以以下脚本为例,以环境为例:
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,以了解如何使用参数配置服务。