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

efriandika/laravel-settings

A simple Laravel package for managing database-backed application settings, with helpers to get, set, and forget key-value values and optional caching for fast access.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for runtime-configurable settings. The capability this package encodes — a settings table, a get/set API, a cache in front of it, and fallback defaults — is routinely needed by any product with admin-tunable values: pricing thresholds, feature toggles, integration endpoints, copy strings, rate limits, retry counts. The PM decision is not "adopt this package" but "do we build this one small seam ourselves or take a dependency." At 54 stars, a last release of January 2017, and a headline of L5.4 support, the honest answer is build it — the pattern is ~a day of work behind an interface, and you keep the code, the schema, and the upgrade path.
  • Deploy-free operability. A settings layer is what lets support and ops change a value without a release. That converts directly into incident-response time, on-call load, and how much of the roadmap gets consumed by "small config change" tickets. This is the strongest product argument for the capability — and it is an argument for the pattern, not for this specific package.
  • Roadmap inputs it enables or blocks. If you ship a settings store, you're implicitly committing to the follow-ons: an admin UI, an audit trail of who changed what, environment/tenant scoping, and typed or validated values. Each of those is a real roadmap item. The package supplies none of them — it is a raw key-value store with get/set — so treat it as the floor, not the plan.
  • Deferral and legacy commitments. The only durable reason to keep this package in a codebase is that a Laravel 5.x surface still depends on it and a fork costs more than it saves. That is a maintenance-budget decision (patch legacy vs. fund migration), not a product win.
  • Explicitly not supported by this package: secrets management, encryption at rest, multi-tenant configuration at scale, high-frequency feature flagging, or any auditability claim. Do not let a "we already have a settings table" argument quietly absorb those requirements.

When to Consider This Package

Consider it when:

  • You are maintaining an existing Laravel 5.x application that already depends on it, and you need to decide between patching a fork and replacing it — with a named owner for either path.
  • You want a 30-minute spike to validate the key-value-plus-cache pattern before your team writes its own. Reading the source is cheaper than adopting the dependency.
  • The need is genuinely peripheral: a handful of low-churn, non-sensitive values, read on request, in one service you control.

Look elsewhere when:

  • Your stack is Laravel 5.5 or later. Auto-discovery arrived in 5.5; this package predates it. On Laravel 9/10/11/12 the illuminate/* constraint will not resolve and the internal APIs it targets have moved. Assume incompatible until proven otherwise.
  • The values are secrets, credentials, or PII. There is no evidence of encryption, and the description makes no security claim. Use a secrets manager.
  • You need typing, validation, schema, audit history, or per-tenant scoping. This is an untyped key-value store; those are custom work regardless of which package you pick.
  • The settings sit on a hot path in a multi-instance deployment. Verify the cache-invalidation story (does set() bust the cache? is it per-process or shared?) before you trust it under load.
  • You cannot find a release in the last 12 months. You cannot here. One release, from 2017, is not a maintenance cadence.

Mandatory verification if anyone proposes adopting it: read composer.json for the PHP and illuminate/* constraints; confirm whether the cache layer invalidates on write and which driver it assumes; check the migration/schema for key length and uniqueness; confirm whether values are serialized or strings-only; check open-issue age and maintainer count. Compare against spatie/laravel-settings (actively maintained, typed, encrypted-at-rest options) and against "40 lines of code we own."

How to Pitch It (Stakeholders)

For executives — one paragraph: This is a small, abandoned utility that stores application settings in the database so values can change without a deploy. The capability is genuinely useful — it shortens incident response and removes a class of "config change" tickets from the roadmap — but the package itself was last released in 2017, targets Laravel 5.4, and has effectively no community behind it. I am not recommending we adopt it. I am recommending we spend roughly one engineering day building the same capability in-house, behind a single interface, so we own the schema, the caching, and the upgrade path. That is cheaper over any horizon longer than a year than carrying a 2017 dependency we would have to fork, and it unblocks the admin UI and audit trail we actually want to ship.

For engineering — the ask: Two days, timeboxed. (1) A one-day spike: a settings table, a repository behind an interface, a cache layer with explicit invalidation on write, and defaults — plus three contract tests. (2) A half-day comparison against spatie/laravel-settings and against simply using config + env for values that don't need runtime edits. Decision rule: if the spike is under a day and the contract tests pass, we own it; we revisit the package only if we inherit a Laravel 5.x app that already runs it. (3) Confirm on the way through: which of our current values genuinely need runtime editing versus which are just lazily placed in config. That last question usually shrinks the scope by half.

Framing to avoid: do not present this as adopting a settings framework or as an ecosystem-maturity signal. Fifty-four stars and a four-years-stale release are a reference implementation, not a foundation. Presenting it as momentum invites a comparison against maintained packages on the wrong axis and makes the eventual replacement conversation harder than it needs to be. The pitch is "we're building a small thing we will own," not "we found a library."

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.
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package