Single action class for Laravel and Lumen to keep your application DRY.
Via Composer
$ composer require laraditz/actionYou can use php artisan make:action <name> to create your action. For example, php artisan make:action CreateNewPost. By default you can find it in App/Actions folder.
Sample action file generated with some logic added as below:
namespace App\Actions;
use App\Models\Post;
use Laraditz\Action\Action;
class CreateNewPost extends Action
{
public function __construct(
public string $title,
public string $body
)
{}
public function handle(): void
{
// You can use $this->data() helper to retreive all properties.
Post::create($this->data());
}
}Now that you've created your action, you can call it in few ways as below:
Using plain object
$createNewPost = new CreateNewPost(
title: 'My first post',
body: 'This is a post content'
);
$createNewPost->handle();Using static method
CreateNewPost::run(
title: 'My first post',
body: 'This is a post content'
);Please see CHANGELOG for more information what has changed recently.
If you discover any security related issues, please email raditzfarhan@gmail.com instead of using the issue tracker.
MIT. Please see the license file for more information.