Symfony 5.2 与 jms/serializer-bundle 3.7.0.
在下一个请求中通过命令
cache:clear
清理 symfony 缓存后,我收到错误:
目录“var/cache/dev/jms_serializer”不存在
我注意到对于 symfony 4.4 $dir 变量 有
var/cache/de_/jms_serializer
值,但对于 symfony 5.2 有 var/cache/dev/jms_serializer
因此,当 symfony 5.2 运行警告时,JMSSerializerBundle 在
jms_serializer
中创建 var/cache/dev
文件夹而不是 var/cache/de_
序列化器配置:
jms_serializer:
visitors:
xml_serialization:
format_output: '%kernel.debug%'
property_naming:
id: 'jms_serializer.identical_property_naming_strategy'
尝试仅删除缓存目录。
rm -rf var/cache
并使用 php 用户创建它:
sudo su www-data // Login as php user
mkdir var/cache // create cache directory
chown -R $USER:$USER var/cache // Change owner of cache directory
其中运行 php 的用户不是 www-data。
P.S. 我不完全确定,但是 symfony 和序列化程序都没有
var/de
目录。它只是 symfony 在清除缓存过程时创建的临时目录,通常在成功完成后被删除
该问题已在 symfony 5.2.1 中修复
我遇到了同样的问题,“/var/cache/prod/jms_serializer_default 不可写。”这些基本步骤用 Mautic 解决了这个问题,但您可以将相同的原则应用于您的案例。