Laravel migration from 5.2 to 5.5 - Class config does not exist

Published 1 week ago by Leordex

I updated the system step-by-step from 5.2 to 5.5. First, from 5.2 to 5.3, then from 5.3 to 5.4, and finally from 5.4 to 5.5. Unit and integration tests were successful. But when I tried to access the site through the browser, any page gave me error 500. In the log of Laravel there is nothing about it, but the log of Nginx gave me this:

PHP Fatal error: Uncaught ReflectionException: Class config does not exist in /var/www/agc_club/api/vendor/laravel/framework/src/Illuminate/Container/Container.php:752 Stack trace: #0 /var/www/agc_club/api/vendor/laravel/framework/src/Illuminate/Container/Container.php(752): ReflectionClass->__construct('config') /var/www/agc_club/api/vendor/laravel/framework/src/Illuminate/Container/Container.php(631): Illuminate\Container\Container->build('config') /var/www/agc_club/api/vendor/laravel/framework/src/Illuminate/Container/Container.php(586): Illuminate\Container\Container->resolve('config', Array) /var/www/agc_club/api/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(721): Illuminate\Container\Container->make('config', Array) /var/www/agc_club/api/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php(110): Illuminate\Foundation\Application->make('config', Array) /var/www/agc_club/api/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php(272):

Looks like Laravel can't resolve its config. When I change the git branch back to 5.2 and reinstall the vendors, everything works fine, so it's not enviroment problem.

If someone tells me what I did wrong, I'll be grateful.

Best Answer (As Selected By Leordex)
Leordex

The problem is solved by installing a fresh version of Laravel and moving the entire code there.

Talinon
Talinon
1 week ago (39,120 XP)

Here are some things to start off with to check:

Run composer dump-autoload

Run the artisan clear cache commands

Check your .env file for any entries containing spaces and make sure they are encapsulated within double quotations

Check your bootstrap/app.php for any custom code that could be causing the issue.

If none of the above resolve the problem, my next step would be to edit config/app.php, and comment out all package and app service providers, leaving only the native Laravel providers. If that solves the issue, then one of your service providers is the culprit. You can determine which one by uncommenting each one until the error returns.

Leordex

The first four steps I made as soon as there was a problem. I think tomorrow I'll try the option with service providers. Thank you for the idea.

Leordex

No, it seems that the problem is not with service providers. It looks like the problem is occured before config/app.php is loaded. Any more suggestions?

mushood
mushood
1 week ago (60,800 XP)

Yes it could be your environment

here are the laravel 5.2 requirements:

PHP >= 5.5.9
OpenSSL PHP Extension
PDO PHP Extension
Mbstring PHP Extension
Tokenizer PHP Extension

and the laravel 5.5

PHP >= 7.0.0
OpenSSL PHP Extension
PDO PHP Extension
Mbstring PHP Extension
Tokenizer PHP Extension
XML PHP Extension

Start by ensuring that your environment has a php version of 7.0.0+

tisuchi
tisuchi
1 week ago (255,855 XP)

@Leordex

I have a suggestion for you. If your application doesn't carry many gates, and custom functions, you better download a latest version of laravel and move your model, views, controller, and some other files that you have created.

It's so much easier than fixing bug there.

Leordex

@mushood

No, it's not. Cause I deleted PHP 5.6 and installed PHP 7.2 with all required extensions right before Laravel migration. Besides, I wrote before that the tests are working.

@tisuchi

Yes, I'm doing it now. Application customizations were fixed in migration process, so I'm mostly moving files now.

Leordex

The problem is solved by installing a fresh version of Laravel and moving the entire code there.

Please sign in or create an account to participate in this conversation.