marcelgwerder / laravel-api-handler

Package providing helper functions for a Laravel REST-API
Other
152 stars 45 forks source link

Not able to use on Lumen without Facades #38

Open isometriq opened 7 years ago

isometriq commented 7 years ago

Not a issue, but a limitation. While trying to stay away from Facades, these kind of calls in the package forces the host app to be bound to them:

$this->prefix = Config::get('apihandler.prefix');
$this->envelope = Config::get('apihandler.envelope');

There are more in the package, this is just a sample.

isometriq commented 7 years ago

I've enabled facades in ./bootstrap/app.php, but I still get errors in the controller using ApiHandler:

[2017-04-16 04:05:57] lumen.ERROR: Illuminate\Contracts\Container\BindingResolutionException: Target [Illuminate\Contracts\Routing\ResponseFactory] is not instantiable. in C:\xampp\htdocs\lumen\server\vendor\illuminate\container\Container.php:873
Stack trace:
#0 C:\xampp\htdocs\lumen\server\vendor\illuminate\container\Container.php(725): Illuminate\Container\Container->notInstantiable('Illuminate\\Cont...')
#1 C:\xampp\htdocs\lumen\server\vendor\illuminate\container\Container.php(598): Illuminate\Container\Container->build('Illuminate\\Cont...')
#2 C:\xampp\htdocs\lumen\server\vendor\illuminate\container\Container.php(567): Illuminate\Container\Container->resolve('Illuminate\\Cont...')
#3 C:\xampp\htdocs\lumen\server\vendor\laravel\lumen-framework\src\Application.php(208): Illuminate\Container\Container->make('Illuminate\\Cont...')
#4 C:\xampp\htdocs\lumen\server\vendor\illuminate\container\Container.php(1139): Laravel\Lumen\Application->make('Illuminate\\Cont...')
#5 C:\xampp\htdocs\lumen\server\vendor\illuminate\support\Facades\Facade.php(159): Illuminate\Container\Container->offsetGet('Illuminate\\Cont...')
#6 C:\xampp\htdocs\lumen\server\vendor\illuminate\support\Facades\Facade.php(128): Illuminate\Support\Facades\Facade::resolveFacadeInstance('Illuminate\\Cont...')
#7 C:\xampp\htdocs\lumen\server\vendor\illuminate\support\Facades\Facade.php(215): Illuminate\Support\Facades\Facade::getFacadeRoot()
#8 C:\xampp\htdocs\lumen\server\vendor\marcelgwerder\laravel-api-handler\src\Result.php(65): Illuminate\Support\Facades\Facade::__callStatic('json', Array)
#9 C:\xampp\htdocs\lumen\server\app\Http\Controllers\Api\UserController.php(35): Marcelgwerder\ApiHandler\Result->getResponse()
#10 [internal function]: App\Http\Controllers\Api\UserController->index(Object(Marcelgwerder\ApiHandler\ApiHandler), Object(Dingo\Api\Http\Request))
#11 C:\xampp\htdocs\lumen\server\vendor\illuminate\container\BoundMethod.php(29): call_user_func_array(Array, Array)
#12 C:\xampp\htdocs\lumen\server\vendor\illuminate\container\BoundMethod.php(87): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#13 C:\xampp\htdocs\lumen\server\vendor\illuminate\container\BoundMethod.php(31): Illuminate\Container\BoundMethod::callBoundMethod(Object(Laravel\Lumen\Application), Array, Object(Closure))
#14 C:\xampp\htdocs\lumen\server\vendor\illuminate\container\Container.php(531): Illuminate\Container\BoundMethod::call(Object(Laravel\Lumen\Application), Array, Array, NULL)
#15 C:\xampp\htdocs\lumen\server\vendor\laravel\lumen-framework\src\Concerns\RoutesRequests.php(741): Illuminate\Container\Container->call(Array, Array)
#16 C:\xampp\htdocs\lumen\server\vendor\laravel\lumen-framework\src\Concerns\RoutesRequests.php(707): Laravel\Lumen\Application->callControllerCallable(Array, Array)
#17 C:\xampp\htdocs\lumen\server\vendor\laravel\lumen-framework\src\Concerns\RoutesRequests.php(681): Laravel\Lumen\Application->callLumenController(Object(App\Http\Controllers\Api\UserController), 'index', Array)
#18 C:\xampp\htdocs\lumen\server\vendor\laravel\lumen-framework\src\Concerns\RoutesRequests.php(643): Laravel\Lumen\Application->callControllerAction(Array)
#19 C:\xampp\htdocs\lumen\server\vendor\laravel\lumen-framework\src\Concerns\RoutesRequests.php(623): Laravel\Lumen\Application->callActionOnArrayBasedRoute(Array)
#20 [internal function]: Laravel\Lumen\Application->Laravel\Lumen\Concerns\{closure}(Object(Dingo\Api\Http\Request))
#21 C:\xampp\htdocs\lumen\server\vendor\laravel\lumen-framework\src\Routing\Pipeline.php(52): call_user_func(Object(Closure), Object(Dingo\Api\Http\Request))
#22 C:\xampp\htdocs\lumen\server\vendor\dingo\api\src\Http\Middleware\PrepareController.php(45): Laravel\Lumen\Routing\Pipeline->Laravel\Lumen\Routing\{closure}(Object(Dingo\Api\Http\Request))
#23 C:\xampp\htdocs\lumen\server\vendor\illuminate\pipeline\Pipeline.php(148): Dingo\Api\Http\Middleware\PrepareController->handle(Object(Dingo\Api\Http\Request), Object(Closure))
#24 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Dingo\Api\Http\Request))
#25 C:\xampp\htdocs\lumen\server\vendor\laravel\lumen-framework\src\Routing\Pipeline.php(32): call_user_func(Object(Closure), Object(Dingo\Api\Http\Request))
#26 C:\xampp\htdocs\lumen\server\vendor\illuminate\pipeline\Pipeline.php(102): Laravel\Lumen\Routing\Pipeline->Laravel\Lumen\Routing\{closure}(Object(Dingo\Api\Http\Request))
#27 C:\xampp\htdocs\lumen\server\vendor\laravel\lumen-framework\src\Concerns\RoutesRequests.php(778): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#28 C:\xampp\htdocs\lumen\server\vendor\laravel\lumen-framework\src\Concerns\RoutesRequests.php(624): Laravel\Lumen\Application->sendThroughPipeline(Array, Object(Closure))
#29 C:\xampp\htdocs\lumen\server\vendor\laravel\lumen-framework\src\Concerns\RoutesRequests.php(598): Laravel\Lumen\Application->handleFoundRoute(Array)
#30 C:\xampp\htdocs\lumen\server\vendor\laravel\lumen-framework\src\Concerns\RoutesRequests.php(532): Laravel\Lumen\Application->handleDispatcherResponse(Array)
#31 C:\xampp\htdocs\lumen\server\vendor\laravel\lumen-framework\src\Concerns\RoutesRequests.php(781): Laravel\Lumen\Application->Laravel\Lumen\Concerns\{closure}()
#32 C:\xampp\htdocs\lumen\server\vendor\laravel\lumen-framework\src\Concerns\RoutesRequests.php(534): Laravel\Lumen\Application->sendThroughPipeline(Array, Object(Closure))
#33 C:\xampp\htdocs\lumen\server\vendor\dingo\api\src\Routing\Adapter\Lumen.php(103): Laravel\Lumen\Application->dispatch(Object(Dingo\Api\Http\Request))
#34 C:\xampp\htdocs\lumen\server\vendor\dingo\api\src\Routing\Router.php(513): Dingo\Api\Routing\Adapter\Lumen->dispatch(Object(Dingo\Api\Http\Request), 'v1')
#35 C:\xampp\htdocs\lumen\server\vendor\dingo\api\src\Http\Middleware\Request.php(126): Dingo\Api\Routing\Router->dispatch(Object(Dingo\Api\Http\Request))
#36 C:\xampp\htdocs\lumen\server\vendor\illuminate\pipeline\Pipeline.php(114): Dingo\Api\Http\Middleware\Request->Dingo\Api\Http\Middleware\{closure}(Object(Dingo\Api\Http\Request))
#37 C:\xampp\htdocs\lumen\server\vendor\barryvdh\laravel-cors\src\HandlePreflight.php(38): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Dingo\Api\Http\Request))
#38 C:\xampp\htdocs\lumen\server\vendor\illuminate\pipeline\Pipeline.php(148): Barryvdh\Cors\HandlePreflight->handle(Object(Dingo\Api\Http\Request), Object(Closure))
#39 C:\xampp\htdocs\lumen\server\vendor\barryvdh\laravel-cors\src\HandleCors.php(36): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Dingo\Api\Http\Request))
#40 C:\xampp\htdocs\lumen\server\vendor\illuminate\pipeline\Pipeline.php(148): Barryvdh\Cors\HandleCors->handle(Object(Dingo\Api\Http\Request), Object(Closure))
#41 C:\xampp\htdocs\lumen\server\vendor\illuminate\pipeline\Pipeline.php(102): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Dingo\Api\Http\Request))
#42 C:\xampp\htdocs\lumen\server\vendor\dingo\api\src\Http\Middleware\Request.php(127): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#43 C:\xampp\htdocs\lumen\server\vendor\dingo\api\src\Http\Middleware\Request.php(103): Dingo\Api\Http\Middleware\Request->sendRequestThroughRouter(Object(Dingo\Api\Http\Request))
#44 C:\xampp\htdocs\lumen\server\vendor\illuminate\pipeline\Pipeline.php(148): Dingo\Api\Http\Middleware\Request->handle(Object(Dingo\Api\Http\Request), Object(Closure))
#45 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#46 C:\xampp\htdocs\lumen\server\vendor\laravel\lumen-framework\src\Routing\Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#47 C:\xampp\htdocs\lumen\server\vendor\illuminate\pipeline\Pipeline.php(102): Laravel\Lumen\Routing\Pipeline->Laravel\Lumen\Routing\{closure}(Object(Illuminate\Http\Request))
#48 C:\xampp\htdocs\lumen\server\vendor\laravel\lumen-framework\src\Concerns\RoutesRequests.php(778): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#49 C:\xampp\htdocs\lumen\server\vendor\laravel\lumen-framework\src\Concerns\RoutesRequests.php(534): Laravel\Lumen\Application->sendThroughPipeline(Array, Object(Closure))
#50 C:\xampp\htdocs\lumen\server\vendor\laravel\lumen-framework\src\Concerns\RoutesRequests.php(475): Laravel\Lumen\Application->dispatch(NULL)
#51 C:\xampp\htdocs\lumen\server\public\index.php(28): Laravel\Lumen\Application->run()
#52 {main}  

Do you have an idea if it's Lumen limitation or something else? ..previously i was able to use it on Laravel 5.2