默认情况下,你只能使用controller自带的annotations。没有其他的。
然而,如果你也想使用注释来配置你的常规服务,看看下面:
配置Locations
如果你想使用annotations去配置一个服务在你的bundle,或者任何bundle以外的一些服务,比如你src/目录下的,您可以使用以下配置选项,这个bundle将捡起他们,并添加他们到你的依赖服务中。
1 2 3 4 5 |
jms_di_extra: locations: all_bundles: false bundles: [FooBundle, AcmeBlogBundle] directories: ["%kernel.root_dir%/../src"] |
自动控制器注入
这个bundle允许你去配置注入某些属性,并自动到控制器方法。这是最有用的常用服务,然后不需要注释。
1 2 3 4 5 6 7 8 |
jms_di_extra: automatic_controller_injections: properties: request: "@request" router: "@router" method_calls: setRouter: ["@router"] |
如果你的控制器有任何上述属性或者方法,你就不需要去添加一个 @Inject 注释了,我们会自动为您注入配置的服务。那么,如果你声明一个@Inject注释他将自动覆盖所有配置。
禁止使用grep
这个bundle使用不同地方法找到你文件中的注释,这取决于你的操作系统和使用的软件。如果您使用的是Linux发行版的grep安装,grep将默认代替symfony查找,来提高性能。
有时,你可能不想让bundle去使用grep,例如,你的grep版本太旧,因此不支持一些较新的选项。在这种情况下,您可以禁止使用grep,请看下列配置:
1 2 |
jms_di_extra: disable_grep: true |