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

arcanedev/laravel-settings

Laravel Settings provides a simple, persistent way to manage application settings in Laravel. Store and retrieve settings with database or config drivers, cache support, and an easy-to-use API for global configuration values.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit Unchanged. The package still targets a standard Laravel shape: a service provider with auto-discovery, a publishable config file, a driver-based repository (database by default, with a JSON/file and in-memory option), a Settings facade plus setting() / settings() helpers, and a HasSettings trait adding a polymorphic settings() relation for per-model overrides. That still maps cleanly onto a layered Laravel app — settings behind a repository contract rather than scattered across config/ and ad-hoc key-value tables remains the architectural win. The JSON driver remains a hard no for containerized/multi-node deployments.

Integration feasibility Still low-to-moderate effort to install, but the release changes the shape of the evaluation. Version 11.0.0 shipped with empty release notes, so we cannot state what changed, what broke, or what was added. The version jump from the previously observed 1.x line to 11.0.0 is almost certainly a renumbering to track the Laravel major (a common convention in this ecosystem), which — if true — would resolve our largest open question about Laravel 11/12 support. That is a hypothesis, not a finding. It must be confirmed by reading composer.json and the CI matrix, not inferred from a version string.

Technical risk Still the dominant concern, and the release slightly worsens the governance picture while potentially improving the compatibility picture.

Unchanged baseline risk: ~73 stars, 0 dependents, a single maintainer with no visible backup, no published security policy, and an internal score of 2.00. There is still no downstream ecosystem to surface regressions.

New since the last assessment:

  • Empty changelog on a semver-major release. A major bump with no notes is a release-discipline red flag independent of code quality. We cannot distinguish "renumbered to match Laravel 11" from "rewritten, breaking API." Both are plausible; they have opposite implications.
  • Upgrade path is now demonstrably unproven. The assessment previously listed "documented upgrade path / how breaking changes are signalled" as an open question. The evidence now points the wrong way: the first observed major release carries no migration guidance. Teams already on 1.x have no published route to 11.0.0.
  • Version pinning guidance is stale. Our prior instruction to pin 1.x.y no longer applies; the pin target is now 11.0.0.
  • Positive signal, if confirmed: ecosystem-aligned major versioning would suggest active maintenance since March 2024 and formal Laravel 11 (possibly 12) support, which would materially reduce the framework-compatibility risk.

Remaining unverified risks (carried forward, none resolved by this release):

  • Formal illuminate/* and PHP 8.3+ constraint ranges and CI coverage.
  • Cache invalidation on write: global purge, per-key, or TTL-only. Multi-node correctness hinges on this.
  • Typed values (bool/int/array casts) vs. opaque strings.
  • Encryption support for sensitive settings and behavior on APP_KEY rotation.
  • Test coverage and CI status.
  • Migration schema/indexing for the per-model settings table as rows grow.

Key questions for the maintainer / spike

  1. New: What changed in 11.0.0, and is the jump a renumbering or a breaking rewrite? Is there a CHANGELOG or UPGRADE guide anywhere in the repo?
  2. New: Does 11.x support only the latest Laravel majors, and did it drop support for the Laravel version we run?
  3. Which illuminate/* and PHP version ranges are formally supported and CI-tested?
  4. On write, is the cache invalidated globally, per-key, or left to TTL expiry?
  5. Are values typed (bool/int/array casts) or stored as opaque strings?
  6. Is there an active fork or a stated succession plan?
  7. Are encrypted settings supported, and how are key rotations handled?

Integration Approach

Stack fit Best fit: Laravel 11+ on PHP 8.2+, MySQL/Postgres, single-region, Redis available for caching — provisional, pending confirmation that 11.0.0 actually targets Laravel 11/12. If the version number is cosmetic and the framework constraints still top out at Laravel 10, the best fit reverts to the prior assessment (Laravel 9–10, PHP 8.1+). Still a poor fit for multi-tenant SaaS with per-tenant settings at scale, or anything requiring a support SLA.

Migration path Sequence is unchanged, but add a step zero. (0) Diff the release: pull the latest 1.x tag and 11.0.0, diff composer.json, the service provider, the repository contract, and the migration. Ten minutes of diffing substitutes for the changelog that doesn't exist, and it is the only way to answer questions 1 and 2. Then: (1) inventory settings, classify global vs. per-model; (2) create schema and backfill; (3) put a SettingsService interface in front of the package so call sites never touch the facade; (4) dual-read with fallback to legacy for one release; (5) decommission legacy. The adapter is still the insurance policy.

Compatibility gates Unchanged in substance, updated in specifics. Install into a branch on our exact Laravel/PHP versions, run the full test suite, confirm no illuminate/support constraint conflict. Pin 11.0.0 exactly, not ^11.0 — with no changelog, we cannot predict what 11.0.1 contains, and a patch release is now an unquantified risk. Confirm the migration is reversible and idempotent. Add one gate: review the 1.x → 11.0.0 diff for API-surface changes before any code is written against it.

Sequencing

  1. Release triage: read composer.json, diff 1.x vs. 11.0.0, check CI status and CHANGELOG presence (~half day). This is now a hard prerequisite, not part of the spike.
  2. Spike branch: install, publish, migrate, read/write round-trip, verify cache behavior on two app nodes (~2 days).
  3. Decision gate: pass/fail on the seven key questions plus compatibility.
  4. Adapter interface + implementation, package isolated behind it.
  5. Backfill migration and dual-read rollout.
  6. Admin UI / write-path wiring.
  7. Load test the read path, cache-warm and cache-cold.
  8. Cutover, runbook, and a documented "how to replace this package in a day" note.

Operational Impact

Maintenance Unchanged and slightly reinforced: cost is dominated by vendor risk, not code volume. The empty major release is concrete evidence for the scenario we already budgeted for — assume we eventually own the code. A named internal owner, a vendored fork path, and a pinned version must exist from day one. Reassess on every Laravel major upgrade. Concretely: if we adopt 11.0.0 and upstream later drops a 12.0.0 with no notes, we will be re-running the diff exercise with the package already in production. Price that in.

Support Community-only, best-effort, no SLA. If 11.0.0 signals renewed activity, response latency may improve, but nothing in the release commits to that. Incident response comes from our team. Acceptable for admin-configurable settings; not acceptable on the critical request path without the adapter and a tested fallback to static config.

Scaling Unchanged. The read path must be cache-first — settings are read on nearly every request and a per-request DB query will show in p95. The scaling question is consistency, not throughput: after a write, every node must see the new value within a bounded window. If the package offers only TTL expiry, set a short TTL and accept stale reads, or add our own invalidation. If 11.0.0 changed the caching layer, that behavior must be re-verified from scratch — do not carry forward assumptions from 1.x. JSON driver remains a hard no for horizontal scaling.

Failure modes to design for

  • Stale settings on some nodes after a write (cache coherence) — re-test, do not assume, post-11.0.0.
  • Cache stampede when a widely-read key is invalidated.
  • Missing migration in a deploy → runtime exception on first read.
  • APP_KEY rotation making encrypted settings undecryptable.
  • Silent fallback to hardcoded defaults masking a misconfiguration — log when a default is served for a key that should exist.
  • Unbounded growth of the per-model settings table.
  • New: unannounced breaking change delivered in a patch release, given no changelog and a major-version renumbering we don't understand.

Ramp-up Half a day for a mid-level Laravel developer to be productive; the API is small and the release does not appear to change that (pending the diff). The genuine learning curve remains operational: driver choice, cache-invalidation semantics, and the deploy-time migration dependency. Add one item for the runbook: our pinned version, the date, and the diff findings — so the next person does not have to rediscover that the changelog is empty.

Verdict: unchanged in direction, but with a higher bar on evidence. Still acceptable as an internal, low-blast-radius settings store behind our own interface, with an exact version pin and a fork contingency. It is not appropriate as a critical-path dependency without the compatibility gate, the adapter layer, and a named owner. The 11.0.0 release is a net-neutral signal: it may indicate renewed maintenance and Laravel 11/12 support (which would be good), but it shipped with no documentation (which is bad), and we can only resolve the ambiguity by reading the diff. If the triage step or the spike fails on version support or cache coherence, fall back to a thin in-house repository over Eloquent — the package's surface area is small enough that the build cost is comparable to the vendor-management cost.

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/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
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