[1.18.0] — 2026-07-30
Removed
- Support for Laravel 10 and 11.
- Both majors are past their security-support window.
- Every
laravel/frameworkrelease on either line — including the newest patch — is now flagged by Packagist's security-advisory database. - Composer 2.9+ refuses to install them at all (
config.policy.advisories.blockrejects the resolution outright). - This isn't a version bump we chose; dependency resolution for those majors is no longer possible.
- Updated minimum requirements: Minimum supported range is now Laravel 12–13.
illuminate/contracts,illuminate/support,illuminate/validation,illuminate/console,illuminate/database, andilluminate/httpall move to^12.0|^13.0.
[1.17.0] — 2026-07-29
Added
SimpleDataObjectsServiceProvider— artisan commands and automatic controller injection.- Manual Registration: Not auto-discovered — register it yourself in
bootstrap/providers.php. Every other Laravel-facing piece in this package is already opt-in per-class, and this is the one that adds process-wide container behavior, so turning it on is a deliberate step rather than something that changes behavior for every Laravel app that installs this package. - Automatic Injection & Validation: Type-hint a
BaseDatasubclass that usesHasLaravelIntegrationas a controller or route-closure parameter and it hydrates + validates from the current request automatically.- No
FormRequestneeded. - A validation failure still surfaces as the normal
ValidationException→422.
- No
- Zero Overhead: Implemented as a
beforeResolving(BaseData::class, ...)container hook scoped toBaseDataand its subclasses, so it adds no overhead to unrelated container resolutions. Classes withoutHasLaravelIntegration, already explicitly bound classes, and abstract base classes are all left alone. - Global Configuration: Opt out globally with
inject_from_request => falsein the new publishableconfig/simple-data-objects.php. - New Artisan Commands:
sdo:warm/sdo:clear: Thin wrappers over the existingCacheWarmer/MetadataRegistry, auto-registered againstphp artisan optimize.make:data: A DTO stub generator.--from-model: Reads a model's table columns (Schema::getColumns(), Laravel 11+) into typed constructor-promoted properties.--rules: Adds inferred#[Rules].--collection: Adds a doc-comment pointing at the existingstatic::collection().
- Documentation: See Service Provider & Commands.
- Manual Registration: Not auto-discovered — register it yourself in
Full Changelog: v1.16.0...v1.18.0