每当我尝试通过CLI清除缓存(命令php bin/console c:c
(cache:clear的缩写))时,都会得到以下输出:
php.DEBUG: Warning: unlink(/app/var/cache/de_/ContainerWJOxaJf.legacy): No such file or directory
{"exception":"[object] (Symfony\\Component\\Debug\\Exception\\SilencedErrorContext:
{\"severity\":2,\"file\":\"/app/vendor/symfony/http-kernel/Kernel.php\",\"line\":715,\"trace\":[{\"file\":\"/app/vendor/symfony/http-kernel/Kernel.php\",\"line\":541,\"function\":\"dumpContainer\",\"class\":\"Symfony\\\\Component\\\\HttpKernel\\\\Kernel\",\"type\":\"->\"}],\"count\":1})"} []
我已经读过我应该尝试禁用 xdebug.scream (根据this answer),但是我很确定这不会解决问题,因为缓存确实似乎没有清除。在同一问题中,(在this answer中提到要删除 vendor 目录并再次运行composer install
。这也行不通。
首先清除,当不存在预先存在的缓存时,它仅创建一个 / var / cache / dev / 目录。我没有收到警告,它显示已成功清除“开发”环境(debug = true)的 [OK]缓存。消息。此后的任何尝试似乎都临时创建了一个 / var / cache / de _ / 目录,该目录再次被删除。此后,我得到上面提到的警告,但是警告之后它还显示 [OK]…的缓存... 消息。仍然似乎尚未清除缓存本身。
我还读到它可能与 .legacy 后缀有关,并且将其删除可能有效,但是我不愿意在知道它是否会真正篡改此类内容之前是否起作用,以及这种行动可能带来的后果。
有人以前遇到过这个问题,找到了可行的解决方案吗?
非常感谢您的帮助。
更新:刚注意到这一点,但是只要文件发生更改并且我清除了缓存,我也不会收到警告,只有当缓存保持不变时。还尝试了禁用 xdebug.scream 方法,但这并没有任何改变。覆盖内核以与file_exists
一起使用似乎确实摆脱了警告,但我宁愿避免在可能的情况下覆盖内核...