/** * Register the service provider. * * @return void */ public function register() { $this->app->bindShared('Aaronbullard\\Restful\\Responder', function ($app) { $responseObject = IlluminateResponse::getFacadeRoot(); // Make adapter since Laravel's Response::json is static and cannot use $this $adapter = new LaravelResponder($responseObject); // Now decorate return new Data(new HttpCode(new Status(new Errors(new Meta(new Pagination(new Redirection($adapter))))))); }); $this->app->bindShared('Aaronbullard\\Restful\\ResponderFacade', function ($app) { $responder = $app->make('Aaronbullard\\Restful\\Responder'); return new ResponderFacade($responder); }); $this->app->bind('Aaronbullard\\Restful\\ResponseInterface', 'Aaronbullard\\Restful\\ResponderFacade'); }