尝试部署我更新的Symfony2应用程序,遇到了以下问题。
(请注意,我的应用程序使用the new Symfony 3 directory structure。如果您使用的是当前目录结构,请将bin/console
替换为app/console
,将var/cache
替换为app/cache
< / p>
我最近重命名了一个服务类(VariantSlugListener
)。在临时服务器上部署应用程序时,运行bin/console assetic:dump --env=prod
时出现以下错误:
PHP致命错误:类'MyBundle \ Listener \ VariantSlugListener'没有 在发现 /var/www/example.com/staging/var/cache/prod/appProdProjectContainer.php 在第494行
appProdProjectContainer.php
的第494行包含以下代码:
return $this->services['3f288d4f09c9906944ba7e17358f669b942397baf9d79d5ff0737bb756df7023_1'] = new \MyBundle\Listener\VariantSlugListener();
无法找到\MyBundle\Listener\VariantSlugListener
,因为它已使用最新更新重命名为\MyBundle\EventListener\VariantSlugSubscriber
。解决方案是简单地清除Symfony的缓存。
但是,在尝试清除缓存时(使用bin/console cache:clear --env=prod
),我得到与assetic:dump
命令完全相同的错误。所以我收到错误,因为我的Symfony缓存已过时,但由于错误,我无法清除缓存。
我可以通过手动删除var/cache
目录的内容来解决这个问题,但这不是最佳解决方案。
我错过了什么吗?
答案 0 :(得分:1)
在进行&#39;缓存时,可能会触发VariantSlugListener中处理的一些事件:clear&#39;。因此,您唯一的选择是只删除缓存目录的内容或手动替换值,然后运行cache:clear
来预热缓存。