A trait to optionally abort a Laravel app
Inspired by Edd Man's post on optional value control-flows I made a small Laravel package to optionally abort your application.
The package provides a Spatie\OrAbort\OrAbort
-trait that can be used on any class you want. All the methods of the class will gain orAbort
-variant. When the original function returns a falsy value Laravel's abort
-function will be called with code 404.
Why in the world would you want use this trait? If you use repositories you probably have written this kind of code:
[code language="php"] $article = $articleRepository->find($articleId) ?: abort(404)
By using this trait on your repository you can write it a bit more readable:
[code language="php"]
$article = $articleRepository->findOrAbort($articleId);
You can even add an extra parameter to specify an abort code:
[code language="php"] $article = $articleRepository->findOrAbort($articleId, 500);
If the `find`-function on your repository returns a falsy value Laravel will abort with status code 500.
The `orAbort`-trait uses the magic method `__call`. Do not use the trait on classes that already use that method call.
You can find the package on GitHub: <a href="https://github.com/spatie/laravel-or-abort">https://github.com/spatie/laravel-or-abort</a>
What are your thoughts on "A trait to optionally abort a Laravel app"?