Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Settings Laravel Package

hackeresq/laravel-settings

View on GitHub
Deep Wiki
Context7

Getting Started

v3.2.1 is a compatibility release — the headline change is declared support for Laravel 10. Treat it as an upgrade-safety patch rather than a feature drop, and start by confirming the constraint actually changed:

  1. Check the composer constraint before upgrading.

    composer show <vendor>/<package> --all | grep -A2 requires
    

    You want to see illuminate/support (and friends) widened to include ^10.0. If the package still pins ^9.0, the release note is claiming something the manifest doesn't deliver.

  2. Upgrade in a branch, not on main.

    composer require <vendor>/<package>:^3.2 --with-all-dependencies
    php artisan vendor:publish --provider="<Vendor>\<Package>\<PackageServiceProvider>"
    

    Re-publish only if the config file changed — diff it against your existing config/ entry rather than overwriting.

  3. Where to look first: the package's UPGRADE.md/CHANGELOG.md for the 3.2.x entries, then the service provider to confirm what is still auto-discovered. Laravel 10 kept package auto-discovery intact, so the provider should register without a config/app.php edit.

  4. First use case: run your existing app test suite against the bumped dependency before writing new code. That is the only meaningful signal that the Laravel 10 support is real for your usage. If you have no coverage of the package's touchpoints, add a smoke test that boots the provider and hits one facade/endpoint.

Implementation Patterns

Because this release is narrow, the day-to-day patterns are about adopting the version safely and keeping your CI honest.

Pin and stage the upgrade. Use ^3.2 in composer.json so future patches land, but lock the first upgrade deliberately:

composer require <vendor>/<package>:^3.2 --with-all-dependencies
composer why-not <vendor>/<package> ^3.2   # surfaces blocking deps

Run a CI matrix. If you maintain a package or a multi-app monorepo, this is the release that justifies a Laravel 10 job:

matrix:
  laravel: [9.*, 10.*]
  php: [8.1, 8.2]

Use orchestra/testbench at the matching major (^8 for Laravel 10, ^7 for Laravel 9) — mixing these is the most common cause of "it works locally, fails in CI."

Prefer container resolution over facades in new code. Nothing in a compatibility release changes this, but if you are touching integration points anyway, resolve the package's contracts from the container so future breaking changes are a single binding swap rather than a grep across the codebase.

Keep config publishing idempotent. In deploy scripts, run php artisan config:cache after vendor:publish, and never publish on every deploy — it will silently clobber environment-specific overrides.

Isolate the integration behind your own adapter. One class that wraps the package's public API means the next major (v4) touches one file.

Gotchas and Tips

  • "Supports Laravel 10" ≠ "drops Laravel 9." Verify the constraint is a union (^9.0|^10.0), not a replacement. A silent drop of Laravel 9 support is a breaking change hiding in a patch version — pin exactly if you still run Laravel 9 anywhere.
  • PHP floor moved. Laravel 10 requires PHP 8.1. If any environment (CI image, prod container, a legacy worker) is still on 8.0, the package upgrade will fail at install time with a confusing constraint error. Check php -v everywhere first.
  • Doctrine DBAL removal in Laravel 10. Packages that used doctrine/dbal for change() on columns may have had to rework that path in this release. If you rely on column-modifying migrations that touch package tables, test them explicitly — this is the most likely place a "compatibility only" release actually changed behaviour.
  • Deprecation noise. Laravel 10 tightened several Illuminate contracts. Run with APP_DEBUG=true and watch storage/logs/laravel.log for deprecation notices during the first boot; they are cheap to fix now and expensive after the next major.
  • Debugging resolution failures. composer why-not <vendor>/<package> 3.2.1 and composer depends <conflicting/package> will identify the blocker faster than reading the solver output. If the provider isn't loading, php artisan about and php artisan package:discover -v confirm discovery.
  • Clear caches after upgrading, in this order: config:clear, route:clear, view:clear, then re-cache. A stale bootstrap/cache/config.php will make you debug a problem that no longer exists.
  • Extension points to check for changes: publishable config tags, registered events/listeners, and any container bindings in the service provider. These are the three surfaces a compatibility release is most likely to have adjusted, and all three are invisible until runtime.
  • Thin release notes are a signal, not a guarantee. "Supports Laravel 10" with no migration notes usually means no API changes — but confirm by diffing the package between 3.2.0 and 3.2.1 (composer diff or a tag comparison on the repo) before assuming a zero-risk patch.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route