ssheduardo / redsys-laravel

Package Redsys
MIT License
90 stars 31 forks source link

Error falta versión 1.4.5 (Class "config" does not exist) #59

Closed aalbarca closed 1 year ago

aalbarca commented 1 year ago

Al realizar la actualización de la versión 1.4.4 a la versión 1.4.5 la aplicación de Laravel queda rota hasta forzar una regresión a la versión 1.4.4.

Parece algo relacionado con los cambios en RedsysServiceProvider.

Probado en Laravel 8:

PHP Fatal error:  Uncaught ReflectionException: Class "config" does not exist in /var/www/vendor/laravel/framework/src/Illuminate/Container/Container.php:877
Stack trace:
#0 /var/www/vendor/laravel/framework/src/Illuminate/Container/Container.php(877): ReflectionClass->__construct()
#1 /var/www/vendor/laravel/framework/src/Illuminate/Container/Container.php(758): Illuminate\Container\Container->build()
#2 /var/www/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(851): Illuminate\Container\Container->resolve()
#3 /var/www/vendor/laravel/framework/src/Illuminate/Container/Container.php(694): Illuminate\Foundation\Application->resolve()
#4 /var/www/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(836): Illuminate\Container\Container->make()
#5 /var/www/vendor/laravel/framework/src/Illuminate/Support/ServiceProvider.php(135): Illuminate\Foundation\Application->make()
#6 /var/www/vendor/ssheduardo/redsys-laravel/src/RedsysServiceProvider.php(37): Illuminate\Support\ServiceProvider->mergeConfigFrom()
#7 /var/www/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(682): Ssheduardo\Redsys\RedsysServiceProvider->register()
#8 /var/www/bootstrap/app.php(52): Illuminate\Foundation\Application->register()
#9 /var/www/artisan(18): require_once('...')
#10 {main}

Next Illuminate\Contracts\Container\BindingResolutionException: Target class [config] does not exist. in /var/www/vendor/laravel/framework/src/Illuminate/Container/Container.php:879
ssheduardo commented 1 year ago

Que raro, Entiendo que solo hiciste un composer update de la clase 1.4.4 a la 1.4.5 que publiqué hace poco. Voy a tratar de replicarlo.

aalbarca commented 1 year ago

Hola @ssheduardo he conseguido replicarlo, supongo que es problema mío de versiones antiguas de Laravel.

Tenía registrado el provider en mi boostrap/app.php:

/*
|--------------------------------------------------------------------------
| Register vendor providers
|--------------------------------------------------------------------------
|
|
*/

$app->register(Ssheduardo\Redsys\RedsysServiceProvider::class);

Esto hacía que se cargara tu provider antes que el boostrapeo de la clave config en el DI de Laravel lo que provocaba el error. Al eliminar la línea de ahí Laravel ya hace el registro del provider en el momento que toca.

ssheduardo commented 1 year ago

Ya, tuve que instalar la versión 1.4.4 y luego pasar a la versión 1.4.5 con Laravel 10 sin fallo. Pero bueno viene bien el saber porque fallaba y que esto pueda ayudar al resto.