When I try to update our existing project from Laravel 5.1 to Laravel 5.2 using the official guide, I get an error after composer update when the post update
php artisan clear-compiled
is run. Here is the error.
Class Illuminate\Foundation\Composer does not exist
Has anyone had a similar problem? When I run composer update with the no scripts flag it updates regularly so it's a problem on the clear-compiled.
Below are my Service Providers and my composer.json file.
Service Providers
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": "^1.6@dev",
"laravelcollective/html": "5.2.*",
"laravelcollective/remote": "~5.2",
"kriswallsmith/assetic": "^1.3@dev",
"pda/pheanstalk": "^3.0@dev",
"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": "^1.1@dev",
"laravel/socialite": "^3.0@dev",
"intervention/image": "^2.3@dev",
"brightcove/api": "^1.0@dev",
"torann/geoip": "dev-master",
"graham-campbell/throttle": "~5.1",
"jenssegers/agent": "^3.0@dev"
},
"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": "^2.0@dev",
"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
}
When I run
grep -nH -d recurse 'Composer' bootstrap/ app/ config/
This is what is returned:
bootstrap/autoload.php:7:| Register The Composer Auto Loader bootstrap/autoload.php:10:| Composer provides a convenient, automatically generated class loader bootstrap/autoload.php:42:| when working locally. However we will need to load in the Composer
This is how the autoload.php file looks like:
<?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's 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);
}
Could it be something about the workbench?
Update: a really horrible fix of returning the Composer.php from 5.1 to vendor/laravel/framework/src/Illuminate/Foundation lets the app function normally but I really need a better solution, one which can be pushed onto production.
Composer
class. I honestly think removing thecompiled.php
file fixed it and you may just need to run composer again – andrewtweber