Composer ошибка установки - jms-security-extra-bundle - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь обновить приложение PHP с Symfony 2.x до 3.x. Мне удалось решить проблемы с зависимостями для различных пакетов, которые мы используем, и все пакеты загружаются и устанавливаются. Однако, когда composer install запускает очистку кеша, он выдает следующие ошибки:

  [RuntimeException]
  An error occurred when executing the "'cache:clear --no-warmup'" command:


  Warning: Uncaught Symfony\Component\Debug\Exception\ContextErrorException: Warning: require_once(/home/vagrant/code/symfony/vendor/jms/security-extr
  a-bundle/Tests/Functional/../../vendor/autoload.php): failed to open stream: No such file or directory in /home/vagrant/code/symfony/vendor/jms/secu
  rity-extra-bundle/Tests/Functional/AppKernel.php:5
  Stack trace:
  #0 /home/vagrant/code/symfony/vendor/jms/security-extra-bundle/Tests/Functional/AppKernel.php(5): require_once()
  #1 /home/vagrant/code/symfony/vendor/symfony/symfony/src/Symfony/Component/Debug/FatalErrorHandler/ClassNotFoundFatalErrorHandler.php(191): require_
  once('/home/vagrant/c...')
  #2 /home/vagrant/code/symfony/vendor/symfony/symfony/src/Symfony/Component/Debug/FatalErrorHandler/ClassNotFoundFatalErrorHandler.php(145): Symfony\
  Component\Debug\FatalErrorHandler\ClassNotFoundFatalErrorHandler->convertFileToClass('/home/vagrant/c...', '/home/vagrant/c...', 'JMS\\SecurityExt..
  .')
  #3 /home/vagrant/code/symfony/vendor/symfony/symfony/src/Symfony/Component/Debug/Fata in /home/vagrant/code/symfony/vendor/jms/security-extra-bundle
  /Tests/Functional/AppKernel.php on line 5

  Fatal error: Symfony\Component\Debug\FatalErrorHandler\ClassNotFoundFatalErrorHandler::main(): Failed opening required '/home/vagrant/code/symfony/v
  endor/jms/security-extra-bundle/Tests/Functional/../../vendor/autoload.php' (include_path='.:/usr/share/php') in /home/vagrant/code/symfony/vendor/j
  ms/security-extra-bundle/Tests/Functional/AppKernel.php on line 5

Файл, на который он ссылается, имеет эти строки вверху:

<?php

namespace JMS\SecurityExtraBundle\Tests\Functional;

require_once __DIR__.'/../../vendor/autoload.php';

Нет autoload. php по этому пути. Я подозреваю, что этот файл загружается автоматически, хотя этого быть не должно, но я не уверен, как решить эту проблему.

Я сравнил содержимое файла /vendor/jms/security-extra-bundle/Tests/Functional/AppKernel.php с другим проектом Symfony 3, который у нас есть, и это точно так же, поэтому это наводит меня на мысль, что еще более вероятно, что этот файл загружается автоматически, хотя этого не должно быть. команда?

1 Ответ

0 голосов
/ 05 мая 2020

Я решил это. Первоначально я скопировал bin/console из другого проекта Symfony 3. Однако кажется, что правильным подходом было переместить существующий app/console в путь bin/console и обновить пути включения, чтобы правильно ссылаться на файл bootstrap.php.cache в ../var/ и autoload.php и AppKernel.php в ../app. Теперь весь файл bin/console выглядит так:

#!/usr/bin/env php
<?php

// if you don't want to setup permissions the proper way, just uncomment the following PHP line
// read http://symfony.com/doc/current/book/installation.html#configuration-and-setup for more information
//umask(0000);

set_time_limit(0);

require_once __DIR__.'/../var/bootstrap.php.cache';
require_once __DIR__.'/../app/autoload.php';
require_once __DIR__.'/../app/AppKernel.php';

use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\Debug\Debug;

$input = new ArgvInput();
$env = $input->getParameterOption(array('--env', '-e'), getenv('SYMFONY_ENV') ?: 'dev');
$debug = getenv('SYMFONY_DEBUG') !== '0' && !$input->hasParameterOption(array('--no-debug', '')) && $env !== 'prod';

if ($debug) {
    Debug::enable();
}

$kernel = new AppKernel($env, $debug);
$application = new Application($kernel);
$application->run($input);
...