Skip to content

Instantly share code, notes, and snippets.

@jeffochoa

jeffochoa/1.php Secret

Last active June 3, 2019 10:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jeffochoa/4c1b0b39a18c9b1a4c1d44379eaa3091 to your computer and use it in GitHub Desktop.
Save jeffochoa/4c1b0b39a18c9b1a4c1d44379eaa3091 to your computer and use it in GitHub Desktop.
abort() helper explained
<?php
abort(
response()->json(['message' => 'Ooops!.'], 402)
);
{
"message": "Ooops!."
}
<?php
class Handler implements ExceptionHandlerContract
{
//...
public function render($request, Exception $e)
{
if (method_exists($e, 'render') && $response = $e->render($request)) {
return Router::toResponse($request, $response);
} elseif ($e instanceof Responsable) {
return $e->toResponse($request);
}
$e = $this->prepareException($e);
if ($e instanceof HttpResponseException) {
return $e->getResponse();
} elseif ($e instanceof AuthenticationException) {
return $this->unauthenticated($request, $e);
} elseif ($e instanceof ValidationException) {
return $this->convertValidationExceptionToResponse($e, $request);
}
return $request->expectsJson()
? $this->prepareJsonResponse($request, $e)
: $this->prepareResponse($request, $e);
}
}
<?php
if (! function_exists('abort')) {
/**
* Throw an HttpException with the given data.
*
* @param \Symfony\Component\HttpFoundation\Response|\Illuminate\Contracts\Support\Responsable|int $code
* @param string $message
* @param array $headers
* @return void
*
* @throws \Symfony\Component\HttpKernel\Exception\HttpException
* @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
*/
function abort($code, $message = '', array $headers = [])
{
if ($code instanceof Response) {
throw new HttpResponseException($code);
} elseif ($code instanceof Responsable) {
throw new HttpResponseException($code->toResponse(request()));
}
app()->abort($code, $message, $headers);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment