简体   繁体   English

Symfony2 LiipFunctionalTestBundle重写@validator服务

[英]Symfony2 LiipFunctionalTestBundle overriding @validator service

I am trying to inject @validator into my service but LiipFunctionalTestBundle is overriding that service when it gets injected. 我试图将@validator注入我的服务,但LiipFunctionalTestBundle在注入时会覆盖该服务。

admin.image_service:
    class: AdminBundle\Service\ImageService
    arguments: ["@validator", "@doctrine.orm.admin_entity_manager", "@image_storage_filesystem"]

Which results in the error 哪会导致错误

must be an instance of Symfony\\Component\\Validator\\Validator\\RecursiveValidator, instance of Liip\\FunctionalTestBundle\\Validator\\DataCollectingValidator given 必须是Symfony \\ Component \\ Validator \\ Validator \\ RecursiveValidator的实例,给出Liip \\ FunctionalTestBundle \\ Validator \\ DataCollectingValidator的实例

running php bin/console debug:container results in 运行php bin / console debug:容器结果

liip_functional_test.validator: Liip\\FunctionalTestBundle\\Validator\\DataCollectingValidator liip_functional_test.validator:Liip \\ FunctionalTestBundle \\ Validator \\ DataCollectingValidator

validator: alias for "liip_functional_test.validator" 验证器:“liip_functional_test.validator”的别名

Is there a way to get around this over than remove liip and refactor all of my tests? 有没有办法解决这个问题,而不是删除liip并重构我的所有测试?

In Your service you should typehint Interface not exact class. 在您的服务中,您应该输入提示Interface而不是确切的类。

Instdead Symfony\\Component\\Validator\\Validator\\RecursiveValidator use Symfony\\Component\\Validator\\Validator\\ValidatorInterface - which is implemented by both classes (Symfony and Liip). Instdead Symfony\\Component\\Validator\\Validator\\RecursiveValidator使用Symfony\\Component\\Validator\\Validator\\ValidatorInterface - 由两个类(Symfony和Liip)实现。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM