草庐IT

php - Symfony2 LiipFunctionalTestBundle 覆盖@validator 服务

coder 2024-01-05 原文

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

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 而不是确切的类。

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

关于php - Symfony2 LiipFunctionalTestBundle 覆盖@validator 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35876322/

有关php - Symfony2 LiipFunctionalTestBundle 覆盖@validator 服务的更多相关文章

随机推荐