cline / data
Extended validation attributes, casts, transformers, and type utilities for spatie/laravel-data
Installs: 45
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/cline/data
Requires
- php: ^8.4.0
- saloonphp/xml-wrangler: ^1.4
- spatie/laravel-data: ^4.18.0
- spatie/laravel-package-tools: ^1.92.7
- symfony/yaml: ^7.3.3
Requires (Dev)
- cline/php-cs-fixer: ^1.0.4
- driftingly/rector-laravel: ^2.1.0
- ergebnis/composer-normalize: ^2.49@dev
- laravel/pint: ^1.25.1
- orchestra/testbench: ^10.6
- pestphp/pest: ^4.1.2
- pestphp/pest-plugin-laravel: ^4.0
- pestphp/pest-plugin-type-coverage: ^4.0.2
- phpstan/phpstan: ^2.1.31
- rector/rector: ^2.2.3
- symfony/var-dumper: ^7.3.4
README
This library provides extended validation attributes, casts, transformers, and type utilities for spatie/laravel-data. It enhances the powerful data transfer object pattern with additional validation rules, type conversions, and utilities designed for Laravel 11+ with PHP 8.4+.
Requirements
Requires PHP 8.4+ and Laravel 11+
Requires spatie/laravel-data 4.18+
Installation
composer require cline/data
Documentation
- Validation Attributes - Comprehensive conditional and relational validation rules
- Casts and Transformers - Type conversion and data transformation utilities
- Type Utilities - Type coercion and conversion utilities (StringLike, BooleanLike, NumberLike)
- Examples - Real-world usage examples and patterns
Quick Start
Using Validation Attributes
use Cline\Data\Attributes\Validation\{PresentIf, MissingIf}; use Spatie\LaravelData\Data; class OrderData extends Data { public function __construct( #[PresentIf('type', 'premium')] public ?string $upgradeOption = null, #[MissingIf('automatic_renewal', true)] public ?int $renewalDays = null, ) {} }
Using Casts and Transformers
use Cline\Data\Casts\{TrimCast, UpperCaseCast, NumberLikeCast}; use Spatie\LaravelData\Data; class UserData extends Data { public function __construct( #[TrimCast, UpperCaseCast] public string $name, #[NumberLikeCast] public int $accountId, ) {} }
Using Type Utilities
use Cline\Data\Types\{StringLike, BooleanLike, NumberLike}; // Coerce values to appropriate types $stringValue = StringLike::coerce('hello'); $boolValue = BooleanLike::coerce('true'); $numberValue = NumberLike::coerce('42.5');
Change log
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
Security
If you discover any security related issues, please use the GitHub security reporting form rather than the issue queue.
Credits
License
The MIT License. Please see License File for more information.