Laravel 5.2 artisan optimize — php_strip_whitespace не удалось открыть поток: нет дочерних процессов

Начиная с обновления до Laravel 5.2 с 5.1, при запуске ремесленник оптимизировать на CircleCI, работает PHP 5.6.14, я получаю

[ErrorException]
php_strip_whitespace(/var/laravel/project/root): failed to open stream: No child processes

куда / Вар / Laravel / проект / корень каталог, в котором находятся composer.json и vendor.

Команда отлично работает на моем компьютере с PHP 5.6.11-1ubuntu3.1. Я следовал официальному руководству по обновлению с 5.1 до 5.2.

Exception trace:
() at /var/laravel/project/root/vendor/classpreloader/classpreloader/src/ClassPreloader.php:124
Illuminate\Foundation\Bootstrap\HandleExceptions->handleError() at n/a:n/a
php_strip_whitespace() at /var/laravel/project/root/vendor/classpreloader/classpreloader/src/ClassPreloader.php:124
ClassPreloader\ClassPreloader->getCode() at /var/laravel/project/root/vendor/laravel/framework/src/Illuminate/Foundation/Console/OptimizeCommand.php:83
Illuminate\Foundation\Console\OptimizeCommand->compileClasses() at /var/laravel/project/root/vendor/laravel/framework/src/Illuminate/Foundation/Console/OptimizeCommand.php:64
Illuminate\Foundation\Console\OptimizeCommand->fire() at n/a:n/a
call_user_func_array() at /var/laravel/project/root/bootstrap/cache/compiled.php:1217
Illuminate\Container\Container->call() at /var/laravel/project/root/vendor/laravel/framework/src/Illuminate/Console/Command.php:169
Illuminate\Console\Command->execute() at /var/laravel/project/root/vendor/symfony/console/Command/Command.php:256
Symfony\Component\Console\Command\Command->run() at /var/laravel/project/root/vendor/laravel/framework/src/Illuminate/Console/Command.php:155
Illuminate\Console\Command->run() at /var/laravel/project/root/vendor/symfony/console/Application.php:787
Symfony\Component\Console\Application->doRunCommand() at /var/laravel/project/root/vendor/symfony/console/Application.php:186
Symfony\Component\Console\Application->doRun() at /var/laravel/project/root/vendor/symfony/console/Application.php:117
Symfony\Component\Console\Application->run() at /var/laravel/project/root/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:107
Illuminate\Foundation\Console\Kernel->handle() at /var/laravel/project/root/artisan:36

Любые идеи о том, как я могу решить эту проблему, пожалуйста?

8

Решение

Я нашел ответ на https://laracasts.com/discuss/channels/laravel/laravel-optimize-error где Джонвил упоминает, что config/compile.php неправильно.

Оказывается, массив файлов в config/compile.php был освобожден в коммите в апреле 2015 года но я не вижу изменений, упомянутых в Руководство по обновлению. С тех пор он был добавлен в Руководство по обновлению.

Чтобы решить проблему либо:

  • Очистить массив файлов в config/compile.php

или же

  • Удалить BusServiceProvider.php а также ConfigServiceProvider.php из массива файлов в config/compile.php
    ,
9

Другие решения

Причиной этой ошибки является BusServiceProvider а также ConfigServiceProvider были удалены как часть перехода с 5.1 на 5.2. Хотя ответ, предоставленный для удаления всех скомпилированных классов, решит проблему, вам нужно удалить только два. BusServiceProvider а также ConfigServiceProvider от config/compile.php,


'files' => [
realpath(__DIR__.'/../app/Providers/AppServiceProvider.php'),
realpath(__DIR__.'/../app/Providers/BusServiceProvider.php'), // This one
realpath(__DIR__.'/../app/Providers/ConfigServiceProvider.php'), // And this one
realpath(__DIR__.'/../app/Providers/EventServiceProvider.php'),
realpath(__DIR__.'/../app/Providers/RouteServiceProvider.php'),
],

0