benjamimwalker / command-validator
A package to validate arguments and options on laravel commands.
v1.0
2025-06-13 00:18 UTC
Requires
- php: ^8.2
- laravel/framework: ^10.0||^11.0||^12.0
Requires (Dev)
- laravel/pint: ^1.20.0
- orchestra/testbench: ^8.22.0||^9.0.0||^10.0.0
- pestphp/pest: ^2.36|^3.7.4
- pestphp/pest-plugin-type-coverage: ^2.8.7|^3.2.3
- phpstan/phpstan: ^1.12.16
- rector/rector: ^1.2.10
This package is auto-updated.
Last update: 2025-06-13 23:51:20 UTC
README
A lightweight Laravel package to validate command arguments and options using Laravel's validation.
Command Validator enables automatic validation of Laravel command inputs using a simple attribute. Define rules on your command class, and invalid input will be handled gracefully; including proper error messages and test-safe exceptions.
Installation
Install the package via Composer:
composer require benjamimwalker/command-validator
Usage
Apply the Validatable
attribute to any Artisan command class to define validation rules for arguments and options.
Example
use CommandValidator\Attributes\Validatable; use Illuminate\Console\Command; #[Validatable([ 'name' => ['required', 'string', 'min:3'], 'email' => ['required', 'email'], 'steps' => ['string'], ])] class Dummy extends Command { protected $signature = 'u:c {--name= : The name of the user} {--email= : The email of the user} {steps}'; protected $description = 'Command description'; public function handle() { // Safe to use validated inputs here } }
License
This package is open-sourced software licensed under the MIT license.