mikebronner / laravel-model-caching

Eloquent model-caching made easy.
MIT License
2.23k stars 212 forks source link

Class 'GeneaLabs\LaravelModelCaching\EloquentBuilder' not found #390

Closed creativehotspot closed 3 years ago

creativehotspot commented 3 years ago

Describe the bug Illuminate\Database\Eloquent\Builder as EloquentBuilder was removed in https://github.com/GeneaLabs/laravel-model-caching/commit/69991b689e5ba9659e0af014a60bbcfc447029f2#commitcomment-45373442 however is not resolved by lumen framework.

Eloquent Query N/A

Stack Trace

[2020-12-23 12:43:50] local.ERROR: Class 'GeneaLabs\LaravelModelCaching\EloquentBuilder' not found {"exception":"[object] (Error(code: 0): Class 'GeneaLabs\\LaravelModelCaching\\EloquentBuilder' not found at /var/www/test/vendor/genealabs/laravel-model-caching/src/CachedBuilder.php:7)
[stacktrace]
#0 /var/www/test/vendor/composer/ClassLoader.php(444): include()
#1 /var/www/test/vendor/composer/ClassLoader.php(322): Composer\\Autoload\\includeFile('/var/www/test...')
#2 [internal function]: Composer\\Autoload\\ClassLoader->loadClass('GeneaLabs\\\\Larav...')
#3 /var/www/test/vendor/genealabs/laravel-model-caching/src/Traits/ModelCaching.php(108): spl_autoload_call('GeneaLabs\\\\Larav...')
#4 /var/www/test/vendor/illuminate/database/Eloquent/Model.php(1183): Test\\Library\\Domain\\Geo\\Models\\Country->newEloquentBuilder(Object(Illuminate\\Database\\Query\\Builder))
#5 /var/www/test/vendor/illuminate/database/Eloquent/Model.php(1219): Illuminate\\Database\\Eloquent\\Model->newModelQuery()
#6 /var/www/test/vendor/illuminate/database/Eloquent/Model.php(1172): Illuminate\\Database\\Eloquent\\Model->newQueryWithoutScopes()
#7 /var/www/test/vendor/illuminate/database/Eloquent/Model.php(1162): Illuminate\\Database\\Eloquent\\Model->newQuery()
#8 /var/www/test/src/App/Modules/Lookups/Queries/CountryIndexQuery.php(14): Illuminate\\Database\\Eloquent\\Model::query()
#9 [internal function]: App\\Modules\\Lookups\\Queries\\CountryIndexQuery->__construct(Object(Laravel\\Lumen\\Http\\Request))
#10 /var/www/test/vendor/illuminate/container/Container.php(870): ReflectionClass->newInstanceArgs(Array)
#11 /var/www/test/vendor/illuminate/container/Container.php(712): Illuminate\\Container\\Container->build('App\\\\Modules\\\\Loo...')
#12 /var/www/test/vendor/illuminate/container/Container.php(651): Illuminate\\Container\\Container->resolve('App\\\\Modules\\\\Loo...', Array)
#13 /var/www/test/vendor/laravel/lumen-framework/src/Application.php(300): Illuminate\\Container\\Container->make('App\\\\Modules\\\\Loo...', Array)
#14 /var/www/test/vendor/illuminate/container/BoundMethod.php(173): Laravel\\Lumen\\Application->make('App\\\\Modules\\\\Loo...')
#15 /var/www/test/vendor/illuminate/container/BoundMethod.php(124): Illuminate\\Container\\BoundMethod::addDependencyForCallParameter(Object(Laravel\\Lumen\\Application), Object(ReflectionParameter), Array, Array)
#16 /var/www/test/vendor/illuminate/container/BoundMethod.php(36): Illuminate\\Container\\BoundMethod::getMethodDependencies(Object(Laravel\\Lumen\\Application), Array, Array)
#17 /var/www/test/vendor/illuminate/container/Util.php(40): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#18 /var/www/test/vendor/illuminate/container/BoundMethod.php(93): Illuminate\\Container\\Util::unwrapIfClosure(Object(Closure))
#19 /var/www/test/vendor/illuminate/container/BoundMethod.php(37): Illuminate\\Container\\BoundMethod::callBoundMethod(Object(Laravel\\Lumen\\Application), Array, Object(Closure))
#20 /var/www/test/vendor/illuminate/container/Container.php(610): Illuminate\\Container\\BoundMethod::call(Object(Laravel\\Lumen\\Application), Array, Array, NULL)
#21 /var/www/test/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(386): Illuminate\\Container\\Container->call(Array, Array)
#22 /var/www/test/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(352): Laravel\\Lumen\\Application->callControllerCallable(Array, Array)
#23 /var/www/test/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(326): Laravel\\Lumen\\Application->callLumenController(Object(App\\Modules\\Lookups\\Controllers\\CountryController), 'index', Array)
#24 /var/www/test/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(279): Laravel\\Lumen\\Application->callControllerAction(Array)
#25 /var/www/test/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(264): Laravel\\Lumen\\Application->callActionOnArrayBasedRoute(Array)
#26 /var/www/test/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(166): Laravel\\Lumen\\Application->handleFoundRoute(Array)
#27 /var/www/test/vendor/laravel/lumen-framework/src/Routing/Pipeline.php(48): Laravel\\Lumen\\Application->Laravel\\Lumen\\Concerns\\{closure}(Object(Laravel\\Lumen\\Http\\Request))
#28 /var/www/test/vendor/test/test-api-library/src/Support/Middleware/AuthenticateAccess.php(23): Laravel\\Lumen\\Routing\\Pipeline->Laravel\\Lumen\\Routing\\{closure}(Object(Laravel\\Lumen\\Http\\Request))
#29 /var/www/test/vendor/illuminate/pipeline/Pipeline.php(167): Test\\Library\\Support\\Middleware\\AuthenticateAccess->handle(Object(Laravel\\Lumen\\Http\\Request), Object(Closure))
#30 /var/www/test/vendor/laravel/lumen-framework/src/Routing/Pipeline.php(30): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Laravel\\Lumen\\Http\\Request))
#31 /var/www/test/vendor/illuminate/pipeline/Pipeline.php(103): Laravel\\Lumen\\Routing\\Pipeline->Laravel\\Lumen\\Routing\\{closure}(Object(Laravel\\Lumen\\Http\\Request))
#32 /var/www/test/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(423): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#33 /var/www/test/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(172): Laravel\\Lumen\\Application->sendThroughPipeline(Array, Object(Closure))
#34 /var/www/test/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(109): Laravel\\Lumen\\Application->dispatch(NULL)
#35 /var/www/test/public/index.php(28): Laravel\\Lumen\\Application->run()
#36 {main}
"} 

Environment

Additional context As per https://github.com/GeneaLabs/laravel-model-caching/issues/376

mikebronner commented 3 years ago

Thanks for the additional info. I can only surmise that something is not being loaded in Lumen that is required to run, or that another package is interfering. As mentioned in the other issues related to this problem, GeneaLabs\LaravelModelCaching\EloquentBuilder is a class alias, and will evaluate properly, if this packages service provider is loaded.

creativehotspot commented 3 years ago

You are correct - Lumen installation gotchas could be updated include registering the service manually in bootstrap/app.php

$app->register(GeneaLabs\LaravelModelCaching\Providers\Service::class);
mikebronner commented 3 years ago

@creativehotspot Awesome, glad you were able to get it working. :) I will add that note, thanks for letting me know (I don't use Lumen).