我正在尝试将@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/