A name for the work
Approve an order. Send an invitation. Export a report. Each operation gets a class with a clear job.
Meet actions
Give each HTTP operation a small action class. Keep related actions together. Let Laravel handle the familiar parts.
Approve an order. Send an invitation. Export a report. Each operation gets a class with a clear job.
Meet actions
Controllers map allowed names to classes. Adding a file does not quietly create a public endpoint.
See the controller map
Keep form requests, policies, middleware, and response objects. Add action-level input prediction when you need it.
Explore Precognition
Exert is opinionated and HTTP-oriented. It groups related actions behind one endpoint, with the action name in the query string by default:
POST /api/orders?action=cancel
Content-Type: application/json
{"order_id":42}The route leads to a controller. The controller selects a registered action. The action handles the HTTP operation. Your application supplies the permissions and business rules.
| If you want to… | Start here |
|---|---|
| Decide whether the pattern fits your application | Meet Exert |
| Install Exert in your Laravel application | Installation |
| Run an example without a database | Your first endpoint |
| Put the pieces together for a real workflow | An order workflow |
| Check a form without executing its operation | Meet Precognition |
| Find a setting, command, or error | Configuration · Commands · Errors |