Ответ 1
Welp, я только что создал новое приложение laravel с 5.2 и снова добавил весь код и зависимости, кажется, работает сейчас.
Когда я пытаюсь обновить существующий проект от Laravel 5.1 до Laravel 5.2, используя официальное руководство, я получаю сообщение об ошибке после обновления компоновщика, когда обновление сообщения
Выполняетсяphp artisan clear-compiled
. Вот ошибка.
Класс Illuminate\Foundation\Composer не существует
У кого-то была аналогичная проблема? Когда я запускаю обновление для компилятора с флагом без скриптов, он регулярно обновляется, поэтому проблема с явным компилированием.
Ниже приведены мои поставщики услуг и мой файл composer.json.
Поставщики услуг
Illuminate\Auth\AuthServiceProvider::class,
Illuminate\Broadcasting\BroadcastServiceProvider::class,
Illuminate\Bus\BusServiceProvider::class,
Illuminate\Cache\CacheServiceProvider::class,
Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
Illuminate\Cookie\CookieServiceProvider::class,
Illuminate\Database\DatabaseServiceProvider::class,
Illuminate\Encryption\EncryptionServiceProvider::class,
Illuminate\Filesystem\FilesystemServiceProvider::class,
Illuminate\Foundation\Providers\FoundationServiceProvider::class,
Illuminate\Hashing\HashServiceProvider::class,
Illuminate\Mail\MailServiceProvider::class,
Illuminate\Pagination\PaginationServiceProvider::class,
Illuminate\Pipeline\PipelineServiceProvider::class,
Illuminate\Queue\QueueServiceProvider::class,
// Illuminate\Redis\RedisServiceProvider::class,
Vetruvet\PhpRedis\PhpRedisServiceProvider::class,
Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
Illuminate\Session\SessionServiceProvider::class,
Illuminate\Translation\TranslationServiceProvider::class,
Illuminate\Validation\ValidationServiceProvider::class,
Illuminate\View\ViewServiceProvider::class,
Collective\Html\HtmlServiceProvider::class,
Laravel\Socialite\SocialiteServiceProvider::class,
Intervention\Image\ImageServiceProvider::class,
Torann\GeoIP\GeoIPServiceProvider::class,
Jenssegers\Agent\AgentServiceProvider::class,
Barryvdh\Debugbar\ServiceProvider::class,
composer.json
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.2.*",
"fzaninotto/faker": "^[email protected]",
"laravelcollective/html": "5.2.*",
"laravelcollective/remote": "~5.2",
"kriswallsmith/assetic": "^[email protected]",
"pda/pheanstalk": "^[email protected]",
"aws/aws-sdk-php-laravel": "~3.0",
"illuminate/http": "~5.2",
"illuminate/session": "~5.2",
"illuminate/support": "~5.2",
"nesbot/carbon": "~1.18",
"guzzlehttp/guzzle": "~5.3|~6.0",
"vetruvet/laravel-phpredis": "dev-master",
"predis/predis": "^[email protected]",
"laravel/socialite": "^[email protected]",
"intervention/image": "^[email protected]",
"brightcove/api": "^[email protected]",
"torann/geoip": "dev-master",
"graham-campbell/throttle": "~5.1",
"jenssegers/agent": "^[email protected]"
},
"require-dev": {
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~4.0",
"phpspec/phpspec": "~2.1",
"symfony/dom-crawler": "~3.0",
"symfony/css-selector": "~3.0",
"barryvdh/laravel-debugbar": "^[email protected]",
"laracasts/generators": "dev-master"
},
"repositories": [
{
"type": "git",
"url": "https://github.com/nardev/laravel-vzaar.git"
}
],
"autoload": {
"classmap": [
"database",
"app/Models",
"app/Footgoll"
],
"files": [
"app/helpers.php"
],
"psr-4": {
"Myapp\\": "app/"
}
},
"autoload-dev": {
"classmap": [
"tests/TestCase.php"
]
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-root-package-install": [
"php -r \"copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "dev",
"prefer-stable": true
}
Когда я запустил
grep -nH -d recurse 'Composer' bootstrap/app/config/
Это то, что возвращается:
самозагрузки/autoload.php: 7: | Зарегистрироваться Автозагрузчик Composer самонастройки /autoload.php: 10: | Composer обеспечивает удобный, автоматически созданный загрузчик классов самонастройки /autoload.php: 42: | при работе на местном уровне. Однако нам нужно будет загрузить в Composer
Вот как выглядит файл autoload.php:
<?php
define('LARAVEL_START', microtime(true));
/*
|--------------------------------------------------------------------------
| Register The Composer Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader
| for our application. We just need to utilize it! We'll require it
| into the script here so that we do not have to worry about the
| loading of any our classes "manually". Feels great to relax.
|
*/
require __DIR__.'/../vendor/autoload.php';
/*
|--------------------------------------------------------------------------
| Include The Compiled Class File
|--------------------------------------------------------------------------
|
| To dramatically increase your application performance, you may use a
| compiled class file which contains all of the classes commonly used
| by a request. The Artisan "optimize" is used to create this file.
|
*/
$compiledPath = __DIR__.'/cache/compiled.php';
if (file_exists($compiledPath)) {
require $compiledPath;
}
/*
|--------------------------------------------------------------------------
| Register The Workbench Loaders
|--------------------------------------------------------------------------
|
| The Laravel workbench provides a convenient place to develop packages
| when working locally. However we will need to load in the Composer
| auto-load files for the packages so that these can be used here.
|
*/
if (is_dir($workbench = __DIR__.'/../workbench'))
{
Xtwoend\Workbench\Starter::start($workbench);
}
Может ли это быть что-то о верстаке?
Обновление: действительно ужасное исправление возврата Composer.php от 5.1 к поставщику /laravel/framework/src/Illuminate/Foundation позволяет функции приложения нормально, но мне действительно нужно лучшее решение, которое можно направить на производство.
Welp, я только что создал новое приложение laravel с 5.2 и снова добавил весь код и зависимости, кажется, работает сейчас.
Ошибка, которую вы получаете, касается всех используемых вами пакетов. Поскольку местоположение класса Composer изменено, оно не может быть найдено.
Из примечаний к обновлению:
Класс
Illuminate\Foundation\Support\Composer
был перемещен вIlluminate\Support\Composer
.
Подождите, пока запросы на получение запроса будут приняты, например, пакет laracasts/generators
, который включен в ваш файл composer.json
, является одним из пакетов, которые еще не совместимы с Laravel 5.2
https://github.com/laracasts/Laravel-5-Generators-Extended/issues/81
Таким образом, одним из наиболее часто используемых пакетов, в которых произошла эта ошибка, является cviebrock/eloquent-sluggable
.
https://github.com/cviebrock/eloquent-sluggable/issues/214.
Нет ничего, что можно, но дождаться, когда запросы на тягу будут приняты или просто отредактируют файлы поставщиков, которые не подходят для этого.
Попробуйте
php artisan optimize --force
Если ошибка продолжается, удалите vendor/compiled.php, а затем запустите команду выше Это воссоздает класс vendor/compiled.php.
Команда выше удаляет два файла
Файл bootstrap/compiled.php. Этот файл создается, когда вы оптимизировать классы. Файл app/storage/meta/services.json. Этот файл создается, поскольку Laravel пытается оптимизировать загрузку услуги провайдеров, использующих ваше приложение.
когда я бежал с явным компилятором, он удалил vendor/compiled.php в моем проекте.
Так как у вас нет скомпилированного класса, вы не можете его удалить. Должно быть, поэтому у вас проблемы. Не пытайтесь очистить скомпилированные классы.
Я также обновляю огромное приложение с 4.2 до 5.0. проблемы проблемы..:)
Здесь определяется и обсуждается ошибка:
Возможно, это SocialiteServiceProvider, возможно, и другие.
У меня была эта проблема вчера вечером при обновлении, многие сервис-провайдеры должны обновить свой код до 5.2.
AdamWathan\EloquentOAuthL5\Установка, кажется, использует класс Composer напрямую, удалите этого поставщика услуг и вы можете продолжить обновление.
Попробуйте следующее:
composer update --no-scripts
Это позволило мне увидеть подробное объяснение причин composer update
. Для меня я обновлялся до laravel 5.2, но забыл также обновить "laravelcollective/html": "5.1.*"
до "laravelcollective/html": "5.2.*"
.
Найдено здесь fooobar.com/info/385226/...