Symfony Validator未使用缓存



我有一个symfony 5.2.3项目,其中有一堆缓慢的验证单元测试。我希望缓存验证约束映射。

以下文档https://symfony.com/doc/current/reference/configuration/framework.html#reference-验证缓存我有我的validator.yaml,如下所示(我已经用cli转储了它,它实际上是这样设置的(:

framework:
validation:
enabled: true
email_validation_mode: html5
cache: cache.default_redis_provider

和纪念。yaml:

framework:
cache:
app: cache.adapter.filesystem
default_redis_provider: '%env(REDIS_CACHE_URL)%'

但是缓存并没有写在我的redis中。我深入了解并发现Symfony\Component\Validator\MMapping\Factory\LazyLoadingMetadataFactory正被用于此。所以我在那里进行了一些调试,发现它从DI中得到了$cache=null。我用手动覆盖它

$cache = new RedisAdapter(new Client('redis://redis:6379?database=1'));

我的测试运行得很快,缓存也可以写入和读取。

发生了什么事?这个validation.cache选项是否有效?我可以把任何荒谬的东西放在那里,它甚至不会抛出错误

我看不到您的完整配置,但必须在'.env'文件中设置REDIS_CACHE_URL的值。

相关内容

  • 没有找到相关文章

最新更新