【发布时间】:2021-01-15 07:26:49
【问题描述】:
您如何在您创建的包中实现 Symfony 验证器?
我有一个 Extension 类、一个 CompilerPass 和一个“services.xml”文件。
验证器应该注入中间件,我在我的扩展中尝试使用:$container->registerForAutoConfiguration(ValidatorInterface::class)->addTag(...);
但如果我尝试在 CompilerPass 中查找标签并转储密钥,则它声称我请求了未定义的服务。
【问题讨论】:
-
你不需要对你的扩展类做任何事情。您可以将 ValidatorInterface 注入到您需要的服务中。只需将其放入带有类型提示的构造函数中即可。
ValidatorInterface $validator -
Afaiui,默认情况下捆绑包不会自动配置,因此至少您需要在
services.xml中添加一些接线;我现在似乎必须通过将 PHP 配置添加到扩展的prepend()方法中的framework键来工作;我认为否则应用程序需要实现这一点? (而且我不确定以这种方式在实际捆绑包中使用验证器是否可行......)。如果我错了,请告诉我(请参阅下面的答案)。
标签: php symfony validation bundle