Sevalla is the all-in-one PaaS for your web projects. Host and deploy your applications, databases, object storage, and static sites. Enjoy advanced deployment pipelines, a complete database studio, instant preview apps, and one-click templates. The pricing is simple: no hidden fees, no seat-based pricing, and you pay only for what you use. Get real human support from developers.

Get started now with a $50 credit at Sevalla.com.

A trait to optionally abort a Laravel app

Original – by Freek Van der Herten – 1 minute read

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>

Stay up to date with all things Laravel, PHP, and JavaScript.

You can follow me on these platforms:

On all these platforms, regularly share programming tips, and what I myself have learned in ongoing projects.

Every month I send out a newsletter containing lots of interesting stuff for the modern PHP developer.

Expect quick tips & tricks, interesting tutorials, opinions and packages. Because I work with Laravel every day there is an emphasis on that framework.

Rest assured that I will only use your email address to send you the newsletter and will not use it for any other purposes.