therealedatta/laravel-actions

Actions: controller + auth + validation in one class

v1.3.1 2023-04-05 09:44 UTC

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

This package provides only one class: an Action class that extends the FormRequest class we all know and adapt it slightly so it works as an invokable Controller.

Installation

composer require therealedatta/laravel-actions
php artisan actions:install

You can publish the action stubs for the make:action commad:

php artisan actions:stubs

Usage

php artisan make:action User\EditUser

This command will create the User\Actions\EditUser class. The actions subfolder can be modified/removed in in the config/actions.php file. The stub used to generate the class can be modified publishing the stub (check installation section).

handle should execute the action itself and __invoke (or any other method you want to call) should call handle and return the controller response.

This package executes authorization automatically. By default is true, you can change this in the config/actions.php file.

Important: This package does not call validate automatically. You should call validate in handle method.

public function handle(): User
{
    $validated_data = $this->validate();

    return tap($this->user)->update($validated_data);
}

Testing

We use pint for styling, larastan for static analysis and pest for testing:

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.