Symfony2 LiipFunctionalTestBundle 覆盖@validator 服务

Symfony2 LiipFunctionalTestBundle overriding @validator service

我正在尝试将 @validator 注入到我的服务中,但是 LiipFunctionalTestBundle 在注入时覆盖了该服务。

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

导致错误

must be an instance of Symfony\Component\Validator\Validator\RecursiveValidator, instance of Liip\FunctionalTestBundle\Validator\DataCollectingValidator given

运行 php bin/console debug:container 结果

liip_functional_test.validator: Liip\FunctionalTestBundle\Validator\DataCollectingValidator

validator: alias for "liip_functional_test.validator"

除了删除 liip 并重构我的所有测试之外,还有什么方法可以解决这个问题?

在您的服务中,您应该输入提示 Interface 而不是准确 class。

Instdead Symfony\Component\Validator\Validator\RecursiveValidator 使用 Symfony\Component\Validator\Validator\ValidatorInterface - 由 classes(Symfony 和 Liip)实现。