Неустранимая ошибка PHP: Uncaught Symfony \ Component \ Debug \ Exception \ ClassNotFoundException

Я пытаюсь выпустить свое веб-приложение с помощью Symfony 4.0.6 на Elastic Beanstalk Amazon Web Service. Однако у меня возникает проблема с сообщением «Кэш сценария: очистка возвращается с кодом ошибки 255 !! (Executor :: NonZeroExitStatus)» при развертывании приложения.

Я обновил symfony / flex (v1.0.70 => v1.0.71) и проверил его после.

$ composer install --no-dev --optimize-autoloader
~~~~
  - Removing symfony/process (v4.0.6)
Generating optimized autoload files
ocramius/package-versions:  Generating version class...
ocramius/package-versions: ...done generating version class
Executing script cache:clear [KO]
 [KO]
Script cache:clear returned with error code 255
!!  PHP Fatal error:  Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to load class "DebugBundle" from namespace "Symfony\Bundle\DebugBundle".
!!  Did you forget a "use" statement for another namespace? in C:\Users\xsunt\PhpstormProjects\xsun\tv\4.0\src\Kernel.php:32
!!  Stack trace:
!!  #0 C:\Users\xsunt\PhpstormProjects\xsun\tv\4.0\vendor\symfony\http-kernel\Kernel.php(403): App\Kernel->registerBundles()
!!  #1 C:\Users\xsunt\PhpstormProjects\xsun\tv\4.0\vendor\symfony\http-kernel\Kernel.php(122): Symfony\Component\HttpKernel\Kernel->initializeBundles()
!!  #2 C:\Users\xsunt\PhpstormProjects\xsun\tv\4.0\vendor\symfony\framework-bundle\Console\Application.php(64): Symfony\Component\HttpKernel\Kernel->boot()
!!  #3 C:\Users\xsunt\PhpstormProjects\xsun\tv\4.0\vendor\symfony\console\Application.php(143): Symfony\Bundle\FrameworkBundle\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
!!  #4 C:\Users\xsunt\PhpstormProjects\xsun\tv\4.0\bin\console(39) in C:\Users\xsunt\PhpstormProjects\xsun\tv\4.0\src\Kernel.php on line 32

Я думаю, что нам нужно проверить три пакета после

class Kernel extends BaseKernel
{
    public function registerBundles()
    {
        $contents = require $this->getProjectDir().'/config/bundles.php';
        foreach ($contents as $class => $envs) {
            if (isset($envs['all']) || isset($envs[$this->environment])) {
                **yield new $class();**
            }
        }
}

cat /config/bundles.php

    Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true, 'test' => true],
    Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true],
    Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true],

Не могли бы вы дать мне совет?

Сообщение об ошибке рассказывает историю. Вы пытаетесь установить с помощью --- nodev, но у вас все еще есть доступ к DebugBundle. Думаю, вам может потребоваться изменить файл composer.json, хотя я точно не знаю, как это сделать.

Cerad 11.03.2018 15:38

Спасибо за ваш ответ. Я собираюсь проверить это еще раз.

Ryan Lim 11.03.2018 17:53
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
0
2
1 795
1

Ответы 1

Я думаю, проблема в том, что вы не передаете переменную окружения APP_ENV, поэтому скрипт cache:clear работает в режиме разработки.

Вы должны запустить APP_ENV=prod composer install --no-dev --optimize-autoloader

Это также упоминается на https://symfony.com/doc/current/deployment.html#c-install-update-your-vendors

Другой вариант - запустить composer install --no-dev --optimize-autoloader --no-scripts с дополнительным флагом, скрипты выполняться не будут, но я не знаю, полагается ли ваше приложение на запускаемые скрипты.

Другие вопросы по теме