Symfony2 - Пользовательский пакет FOS удален вручную и теперь не может очистить кеш в производственном режиме.

Я установил FOS Userbundle, чтобы учиться у него, но решил, что он мне больше не нужен. Затем я сделал следующее, чтобы удалить его. После удаления я запустил обновление композитора.

  • удалил комплект из папки поставщика
  • удалено из ядра приложения
  • удалено из файла composer.json
  • удален файл сущности User.php
  • удалены настройки из config.yml, security.yml, routing.yml

Теперь, когда я пытаюсь очистить кеш для производственного режима, я получаю следующую ошибку ниже. Очистка кеша в режиме разработки работает нормально.

Можете показать мне, что я делаю неправильно или чего мне не хватает, чтобы удалить FOS User Bundle и очистить кеш в рабочем режиме?

PHP Fatal error:  Class 'FOS\UserBundle\EventListener\LastLoginListener' not found in /var/www/html/HealthFitness/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/ContainerAwareEventDispatcher.php on line 142

PHP Stack trace:

PHP   1. {main}() /var/www/html/HealthFitness/app/console:0

PHP   2. Symfony\Component\Console\Application->run() /var/www/html/HealthFitness/app/console:27

PHP   3. Symfony\Bundle\FrameworkBundle\Console\Application->doRun() /var/www/html/HealthFitness/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:121

PHP   4. Symfony\Component\DependencyInjection\Container->get() /var/www/html/HealthFitness/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:86

PHP   5. appProdProjectContainer->getEventDispatcherService() /var/www/html/HealthFitness/app/bootstrap.php.cache:2037

PHP   6. Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher->addSubscriberService() /var/www/html/HealthFitness/app/cache/prod/appProdProjectContainer.php:343

person esteemed.squire    schedule 19.04.2014    source источник


Ответы (2)


Ваша ошибка действительно, вероятно, связана с ошибкой кеша.

У вас есть эта ошибка при выполнении php app/console cache:clear --env=prod?

Вы также можете удалить app/cache/prod/* вручную.

person Healkiss    schedule 19.04.2014
comment
Как лучше всего удалить app/cache/prod/* вручную? И да, ошибка появилась после выполнения cache:clear --env=prod. - person esteemed.squire; 20.04.2014
comment
Вручную означает rm -rf app/cache/prod/* ;) Это не влияет на acl и дает права апачу на папку prod/ - person Healkiss; 20.04.2014

Если вы не можете удалить файлы вручную, это также должно работать.

Вы также можете использовать переключатели --no-warmup и --no-optional-warmers:

cache:clear --no-warmup --no-optional-warmers --env=prod

таким образом, он не должен пытаться воссоздать кеш несуществующих классов, а затем выполнять

cache:warmup --env=prod

Ручное удаление кеша хотя и быстрее, но вы все равно его прогреваете.

person Ethernal    schedule 31.08.2016