devlop/laravel-console-input-validation

Trait to simplify the validation of console input in Laravel commands

1.1.2 2024-01-12 07:41 UTC

This package is auto-updated.

Last update: 2024-05-12 08:20:52 UTC


README

Latest Stable Version License

Laravel Console Input Validation

A small trait to make it easier to validate the input to your Laravel commands.

Installation

composer require devlop/laravel-console-input-validation

Usage

use Devlop\Laravel\Console\ValidateInput;
use Symfony\Component\Console\Input\InputInterface;

class DemoCommand extends Command
{
    use ValidateInput;

    /**
     * Validate the console command input.
     *
     * @throws InvalidArgumentException
     */
    protected function validate(InputInterface $input) : void
    {
        // Example using manual validation
        if (! is_numeric($input->getOption('limit'))) {
            throw new InvalidArgumentException('--limit must be numeric');
        }

        // Example using webmozarts/assert
        Assert::numeric($input->getOption('limit')); // assert that the --limit option got a numeric value
        Assert::greaterThan($input->getOption('limit'), 0); // assert that the --limit option get a value greater than 0
    }

    public function handle() : int
    {
        // ...
    }
}