Laravel Data
Laravel Data stats
- Downloads
- 2.9M
- Stars
- 900
- Open Issues
- 7
- Forks
- 139
Create unified resources and data transfer objects
Laravel Data Package by Spatie
The Laravel Data package by Spatie simplifies data handling in Laravel applications by allowing developers to use rich data objects across various contexts. This tool is designed to reduce redundancy and improve data consistency by centralizing data definitions and functionality.
Key Features
- Unified Data Objects: Replace form requests, API transformers, and TypeScript definitions with versatile data objects.
- Automatic Transformations: Data objects can automatically convert into Laravel API resources or other desired formats.
- Lazy Properties: Optimize performance by transforming only requested data properties.
- Validation Integration: Automatically generate and resolve validation rules from data object properties.
- TypeScript Support: Generate TypeScript definitions directly from your PHP data objects, ensuring consistency across the front and back end.
- Eloquent Model Compatibility: Data objects can be directly saved as properties of Eloquent models.
Benefits
- Type Safety: Ensures data types are consistent across your application, reducing errors.
- Reduced Redundancy: Eliminate the need to declare properties multiple times in different layers of your application.
- Simplified Validation: Leverage PHP's type system to reduce the amount of explicit validation rules needed.
Installation and Usage
Install the package via composer:
composer require spatie/laravel-data
To implement, extend the Data class in your data objects:
use Spatie\LaravelData\Data; class SongData extends Data{ public function __construct( public string $title, public string $artist, ) { }}
Learning Resources
- Video Tutorial: Watch the introduction to Laravel Data at Laracon for a visual and detailed explanation of its capabilities.
Additional Information
- Documentation: Comprehensive documentation is available here.
- Support: Contributions to the package are welcomed, and support for the creators can be shown through Spatie’s paid products.
This package is open-sourced under the MIT license and continues to be developed and maintained by Spatie with contributions from the community.
For developers looking to streamline data management in their Laravel applications, the Laravel Data package offers a robust, efficient, and unified approach.