laravel-support maintained by efureev
- illuminate/database ^13.0
- php >=8.5
- ext-json *
- ext-mbstring *
- illuminate/cache ^13.0
- illuminate/console ^13.0
- illuminate/contracts ^13.0
- illuminate/http ^13.0
- illuminate/support ^13.0
- illuminate/validation ^13.0
- php >=8.5
- ext-json *
- ext-mbstring *
- illuminate/cache ^13.0
- illuminate/console ^13.0
- illuminate/contracts ^13.0
- illuminate/database ^13.0
- illuminate/http ^13.0
- illuminate/support ^13.0
- illuminate/validation ^13.0
- php >=8.4
- efureev/support ^5.2
- illuminate/database ^13.0
- php >=8.4
- efureev/support ^5.2
- illuminate/database ^13.0
- php ^8.2
- efureev/support ^4.27 || ^5.0
- illuminate/database ^12.0
- php ^8.2
- efureev/support ^4.27 || ^5.0
- illuminate/database ^11.0
- php ^8.2
- efureev/support ^v4.27
- illuminate/database ^11.0
- php ^8.1
- efureev/support ^4.17
- illuminate/database ^10.1
- php ^8.1
- efureev/support ^4.17
- illuminate/database ^10.1
- php ^8.1 || ^8.2
- efureev/support ^4.17
- illuminate/database ^10.1
- php ^8.1 || ^8.2
- efureev/support ^4.17
- illuminate/database ^10.1
- php ^8.1 | ^8.2
- efureev/support ^4.17
- illuminate/database ^10.1
- php ^8.0 || ^8.1
- efureev/support ^4.13
- illuminate/database ^8.78|^9.25
- php ^8.0 || ^8.1
- efureev/support ^4.13
- illuminate/database ^8.78
- php ^8.0
- efureev/support ^4.8
- illuminate/database ^8.78
- php ^8.0
- efureev/support ^4.8
- illuminate/database ^8.78
- php ^8.0
- efureev/support ^4.8
- illuminate/database ^8.78
- php ^8.0
- efureev/support ^4.8
- illuminate/database ^8.78
- php ^8.0
- efureev/support ^4.8
- illuminate/database ^8.78
- php ^8.0
- efureev/support ^4.8
- illuminate/database ^8.78
- php ^8.0
- efureev/support ^4.8
- illuminate/database ^8.78
- php ^8.0
- efureev/support ^4.8
- illuminate/database ^8.78
- php ^8.0
- efureev/support ^4.8
- illuminate/database ^8.78
- php ^8.0
- efureev/support ^4.8
- illuminate/database ^8.78
- php ^8.0
- efureev/support ^4.8
- illuminate/database ^8.78
- php ^8.0
- efureev/support ^4.8
- illuminate/database ^8.78
- php ^8.0
- efureev/support ^4.8
- illuminate/database ^8.78
- php ^8.0
- efureev/support ^4.8
- illuminate/database ^8.78
- php ^8.0
- efureev/support ^4.8
- illuminate/database ^8.78
- php ^8.0
- efureev/support ^4.4.3
- illuminate/database ^8.70
- php ^8.0
- efureev/support ^4.4.3
- illuminate/database ^8.70
- php ^8.0
- efureev/support ^4.4.3
- illuminate/database ^8.70
- php ^8.0
- efureev/support ^4.4.3
- illuminate/database ^8.70
- php ^8.0
- efureev/support ^4.4.3
- illuminate/database ^8.70
- php ^8.0
- efureev/support ^4.4.3
- illuminate/database ^8.38
- php ^8.0
- efureev/support ^4.4.3
- illuminate/database ^8.38
- php ^8.0
- efureev/support ^4.4.3
- illuminate/database ^8.38
- php ^8.0
- efureev/support ^4.1.2
- illuminate/database ^8.38
- php ^8.0
- efureev/support ^4.1.2
- illuminate/database ^8.38
- php ^8.0
- efureev/support ^4.1.2
- illuminate/database ^8.38
- php ^8.0
- efureev/support ^4.1.2
- illuminate/database ^8.38
- php ^8.0
- efureev/support ^4.1.2
- illuminate/database ^8.38
- php ^8.0
- efureev/support ^4.1.2
- illuminate/database ^8.38
- php ^8.0
- efureev/support ^4.1.2
- illuminate/database ^8.38
- php ^8.0
- efureev/support ^4.1.2
- illuminate/database ^8.38
- php ^8.0
- efureev/support ^4.1.2
- illuminate/database ^8.38
- php ^8.0
- efureev/support ^4.1.2
- illuminate/database ^8.38
- php ^8.0
- efureev/support ^4.1
- illuminate/database ^8.38
- php ^8.0
- efureev/support ^4.1
- illuminate/database ^8.38
- php ^8.0
- efureev/support ^4.1
- illuminate/database ^8.38
- php ^8.0
- efureev/support ^4.1
- illuminate/database ^8.38
- php ^8.0
- efureev/support ^4.1
- illuminate/database ^8.38
- php ^8.0
- efureev/support ^4.1
- illuminate/database ^8.38
- php ^8.0
- efureev/support ^4.1
- illuminate/database ^8.38
- php ^7.4|^8.0
- ext-json *
- efureev/support ^3.0
- illuminate/database ^7.30.3|^8.22.1
- php ^7.4|^8.0
- ext-json *
- efureev/support ^3.0
- illuminate/database ^7.30.3|^8.22.1
- php ^7.4|^8.0
- ext-json *
- efureev/support ^3.0
- illuminate/database ^7.30.3|^8.22.1
- php ^7.4|^8.0
- ext-json *
- efureev/support ^3.0
- illuminate/database ^7.30.3|^8.22.1
- php ^7.4|^8.0
- ext-json *
- efureev/support ^3.0
- illuminate/database ^7.30.3|^8.22.1
- php ^7.4|^8.0
- ext-json *
- efureev/support ^3.0
- illuminate/database ^7.30.3|^8.22.1
- php ^7.4|^8.0
- ext-json *
- efureev/support ^3.0
- illuminate/database ^7.30.3|^8.22.1
- php >=7.3
- ext-json *
- efureev/support ^2.12
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.12
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.12
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.12
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.12
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.12
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.12
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.12
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.12
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.12
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.12
- illuminate/database ^7.0
- php >=7.4
- ext-json *
- efureev/support ^2.12
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.10
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.10
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.10
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.10
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.10
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.10
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.10
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.10
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.10
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.10
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.10
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.10
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.10
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.6
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.6
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.6
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.6
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.6
- illuminate/database ^7.0
- php >=7.3
- ext-json *
- efureev/support ^2.6
- illuminate/database ^7.0
- php >=7.2
- ext-json *
- efureev/support ^2.6
- illuminate/database ^6.11 | ^7.0
- php >=7.2
- ext-json *
- efureev/support ^2.6
- illuminate/database ^6.11 | ^7.0
- php >=7.2
- ext-json *
- efureev/support ^2.6
- illuminate/database ^6.11 | ^7.0
- php >=7.2
- ext-json *
- efureev/support ^2.6
- illuminate/database ^6.11 | ^7.0
- php >=7.2
- ext-json *
- efureev/support ^2.6
- illuminate/database ^6.11 | ^7.0
- php >=7.2
- ext-json *
- efureev/support ^2.6
- illuminate/database ^6.11 | ^7.0
- php >=7.2
- ext-json *
- efureev/support ^2.6
- illuminate/database ^6.11 | ^7.0
- php >=7.2
- ext-json *
- efureev/support ^2.6
- illuminate/database ^6.11 | ^7.0
- php >=7.2
- ext-json *
- efureev/support ^2.5.0
- illuminate/database ^6.11 | ^7.0
- php >=7.2
- ext-json *
- efureev/support ^2.4
- illuminate/database ^6.11 | ^7.0
- php >=7.2
- ext-json *
- efureev/support ^2.4
- illuminate/database ^6.11 | ^7.0
- php >=7.2
- ext-json *
- efureev/support ^2.4
- illuminate/database ^6.11 | ^7.0
- php >=7.2
- ext-json *
- efureev/support ^2.4
- illuminate/database ^6.11 | ^7.0
- php >=7.2
- ext-json *
- efureev/support ^2.4
- illuminate/database ^6.11 | ^7.0
- php >=7.2
- ext-json *
- efureev/support ^2.4
- illuminate/database ^6.11 | ^7.0
- php >=7.2
- ext-json *
- efureev/support ^2.4
- illuminate/database ^6.11 | ^7.0
PHP Laravel Support
Validation rules, Eloquent traits and service-provider scaffolding for Laravel packages and applications. No dependencies beyond the Illuminate components it actually uses.
Requirements
- PHP
>= 8.5 - Laravel
>= 13.0
Install
composer require efureev/laravel-support
Auto-discovered — no manual provider registration. To override the shipped messages:
php artisan vendor:publish --tag=laravel-support-lang
What is in it
Full reference in docs/; the sharp edges are collected in
docs/pitfalls.md.
| Validation rules | Delimited validates each item of a delimited string; Authorized checks a gate against the model a key points at; HasValidate adds one-off validation and typed request reads |
| PostgreSQL arrays | a cast and four query scopes for native text[] / integer[] columns, plus the literal encoder underneath |
| Sortable | hand-ordered model stacks (drag-and-drop friendly), with a migration helper and optional global scopes |
| Service providers | AbstractServiceProvider with runtime-aware boot hooks and helpers for configs, routes, translations, views, policies, commands and bindings |
| Model cache | per-model caching with automatic invalidation and a pluggable cacher |
| Model traits | bind a model into a request or service, resolve it from input, forbid selected methods |
| Resources & pagination | nest a paginated resource collection inside another resource; make additional() merge |
| Repository | a thin Eloquent repository base |
| Global helpers | toCollect(), objectToArray() |
Upgrading
5.0 raises the PHP floor to 8.5, drops the efureev/support dependency and moves three exception
classes. See docs/upgrade-5.0.md.
Tests
The suite runs against a real PostgreSQL, and the Redis cacher against a real Redis — both bugs those cover were invisible to anything less.
composer test # PHPCS + PHPStan + PHPUnit
composer test-cover # the same, with coverage
composer test:docker # the full gate in containers, no local services needed
Redis tests skip themselves when no server is reachable; composer test:docker and CI both
provide one.
Development
This is a library, so composer.lock is intentionally not committed and "lock": false is
set in composer.json. Every CI run resolves the latest matching dependency versions, which
surfaces incompatibilities with new Laravel/PHP releases early. Pin versions in the consuming
application, not here.
.gitattributes keeps tests, docs, CI and Docker out of the Composer archive — only src/,
resources/, composer.json, README.md, CHANGELOG.md and LICENSE reach a consumer's
vendor/. Verify with git archive --format=tar HEAD | tar -t.
Changelog
See CHANGELOG.md.
License
The MIT License (MIT). See LICENSE.