laraditz/action

A simple single action class for Laravel to keep your application DRY
1,403
Install
composer require laraditz/action
Maintainer: raditzfarhan

Laravel Action

Latest Stable Version Total Downloads License StyleCI

Single action class for Laravel and Lumen to keep your application DRY.

Installation

Via Composer

$ composer require laraditz/action

Usage

You 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'
);

Changelog

Please see CHANGELOG for more information what has changed recently.

Security

If you discover any security related issues, please email raditzfarhan@gmail.com instead of using the issue tracker.

Credits

License

MIT. Please see the license file for more information.