Download the PHP package edulazaro/laractions without Composer
On this page you can find all versions of the php package edulazaro/laractions. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package laractions
Laractions - Actions for Laravel
Introduction
Laractions is a package that introduces an action-based pattern for Laravel applications. Actions encapsulate specific pieces of logic that can be executed synchronously or asynchronously, keeping your controllers and models clean.
Instead of placing business logic in controllers, models, or services, actions allow you to encapsulate reusable operations in self-contained classes.
✅ Supports Standalone & Model-Scoped Actions
✅ Allows Asynchronous Execution with Queues
✅ Provides an Artisan Generator for Quick Creation
Why Use Actions?
Instead of bloating controllers, models, or services, Laractions keeps logic encapsulated and reusable.
Feature | Laractions |
---|---|
Encapsulation | Keeps business logic clean & reusable |
Async Execution | Supports Laravel queues & retries |
Validation | Auto-validates parameters before execution |
Model-bound | Works directly with Eloquent models |
Fluent API | run() , dispatch() , retry() , queue() |
Installation
Install via Composer:
Once installed, the package will be available in your Laravel application.
Creating Actions
You can manually create an action or use the artisan command:
This will generate this basic action:
You will place the logic inside the handle
method:
You can then run the action via the run
method:
You can customize the constructor. Dependencies will be injected:
You can run the action as usually via the run
method:
Creating Model Actions
You can manually create a model action or use the artisan command:
This will create the next basic model action:
The user instance will be available inside the $user
attribute.
Models using actios should use the HasActions
trait, so you can register actions inside the $actions
array of the model:
Now, you can execute the action using:
Alternatively, you can still call the action class directly so you don't have to define the action inside the model:
Dynamic Parameters
Laractions provides a flexible with()
method to set action attributes dynamically:
This avoids passing long parameter lists in the run()
method. Please note that these values will be set as action attributes, so you would access them via:
Actions and Models
When calling an action from a model, the model is automatically injected into the action:
If the SendEmailAction
class has a $user
property, the action will automatically set the model:
Running Actions Asynchronously
Laractions allows dispatching actions asynchronously as jobs:
This queues the action instead of executing it immediately. The job will be automatically created and liked to the action, so you don't need to define it.
You can configure how actions are dispatched as jobs:
Mocking Actions for Tests
During unit tests, you can mock actions:
This allows testing without executing real logic.
List Available Actions
To list all registered actions in your application, run:
Logging Actions
Enable logging for any action:
Logs will be written to Laravel's log files.
Acting as an Actor
You can make any model an actor (like a User) by using the IsActor
trait:
Then, call actions like this:
This automatically sets the actor on the action before executing it.
Enabling Tracing
Tracing is disabled by default. You can enable it per action like this:
You can assign the actor and actionable model like so:
Here is an traced action started by an actor:
License
Laractions is open-sourced software licensed under the MIT license.