服务容器
Symfony 应用程序包含多个称为服务的对象。某些服务,例如Session
、Doctrine
或FileSystem
,是使用 Symfony 作为开发平台所固有的。其他对象特定于正在开发的应用程序。Symfony 服务容器帮助实例化、组织和检索这些对象。它还包含一组参数,用于配置应用程序可以使用的行为或特定值。
Symfony 插件为注册到 Symfony 服务容器的服务和参数提供代码完成和导航,并帮助您注册新的。
Symfony 服务的代码完成
在编辑器中,按下Ctrl+Space以调用代码完成并执行以下任一操作:
从服务容器中检索已注册的服务。
实例化服务的完整方法名称。
获取从服务容器获取的注册参数。
服务的代码导航
要导航到服务声明,请将插入符号放在其使用处,然后按Ctrl+B。或者,Ctrl+Click用法。
Navigate to declaration命令还可以让您在服务实现和它注册的路由之间导航。例如,您可以从Filesystem
类跳转到注册类的 services.xml 文件。从那里,您可以导航回服务的注册实现或其使用情况。
服务代码检查
Symfony 插件提供了几种检测服务注册错误的检查。
当您使用未在服务容器中注册的服务时,PhpStorm 会显示来自Missing Service检查的相应警告。.
当您注册已在服务容器中注册的服务时,PhpStorm 会显示来自重复服务检查的相应警告。.
注册服务
服务通常通过在YAML或XML配置文件中添加相应记录来向服务容器注册。例如,要向服务容器注册一个Twig扩展,您可以添加以下记录:
服务注册记录至少由服务名称和实现它的类组成。此外,它通常包含在实例化服务时应由服务容器提供的参数的指令。
Symfony 插件提供了创建服务工具,可以帮助创建 YAML 或XML注册。
注册服务
在代码编辑器中右键单击并从上下文菜单中选择创建服务。
在打开的服务生成器对话框中,提供类的 FQN 以在类字段中注册到服务容器。
需要成为注册一部分的潜在方法列表会自动填充。如有必要,单击“生成”以刷新它。
在创建服务时,您可以让服务容器为类中的每个函数分配参数。这是通过选择或取消选择Act复选框来调节的。
在Service列中,您可以选择应该注入参数的服务。
通过选择相应的选项来选择是生成YAML还是XML 。
单击复制到剪贴板,将生成的服务注册粘贴到配置文件中,例如services.yml。