Symfony2 LiipFunctionalTestBundle重写@validator服务

dan*_*ury 5 php symfony liipfunctionaltestbundle

我试图将@validator注入我的服务,但LiipFunctionalTestBundle在注入时会覆盖该服务.

admin.image_service:
    class: AdminBundle\Service\ImageService
    arguments: ["@validator", "@doctrine.orm.admin_entity_manager", "@image_storage_filesystem"]
Run Code Online (Sandbox Code Playgroud)

哪会导致错误

必须是Symfony\Component\Validator\Validator\RecursiveValidator的实例,给出Liip\FunctionalTestBundle\Validator\DataCollectingValidator的实例

运行php bin/console debug:容器结果

liip_functional_test.validator:Liip\FunctionalTestBundle\Validator\DataCollectingValidator

验证器:"liip_functional_test.validator"的别名

有没有办法解决这个问题,而不是删除liip并重构我的所有测试?

Paw*_*zuk 6

在您的服务中,您应该输入提示Interface而不是确切的类.

Instdead Symfony\Component\Validator\Validator\RecursiveValidator使用Symfony\Component\Validator\Validator\ValidatorInterface- 由两个类(Symfony和Liip)实现.