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 Setting Laravel Package

jobmetric/laravel-setting

A Laravel package for managing application settings with a flexible key-value store, letting you define, save, and retrieve configuration values at runtime. Useful for admin-editable options like site name, contact details, and feature toggles without touching config files.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — Conventional Laravel package shape: service provider, facade, publishable config, DB-backed settings table, service class, and a global helper. Reasonable fit for applications that need runtime-editable configuration without redeploying. Persistence is assumed to be the database; the notes show no evidence of an abstraction over cache or storage drivers.

Integration feasibility — Low-to-moderate effort. Install, publish config, run migration, optionally override the table name, then consume via facade or helper. The two friction points are the public API rename and unclear config-cache semantics.

Technical risk

Severity Item Why
High store() → dispatch() rename in a minor release Callers break at runtime with BadMethodCallException; strong signal of a semver policy gap
High License change Unknown direction; blocks adoption pending legal review
Medium "Change value config cache" Ambiguous — key, TTL, or default store changed? Silent staleness risk
Medium "Load setting in global object" Boot-time global state; stale values, memory retention, test isolation issues
Medium Facade accessor bug fix Behavior change; any code compensating for the old bug now behaves differently
Low New helper function Global namespace collision with other settings packages
Low Dependency version change Tightened or loosened constraints unknown; affects reproducibility
Low Remove .gitignore Confirm no .env/vendor artifacts ship in the package

Key questions

  1. Is store() retained as a deprecated alias, or hard-removed in 1.1.0?
  2. Why is a public method rename not 2.0.0? What is the project's stated semver policy?
  3. License: from what to what? Compatible with our distribution and redistribution model?
  4. What exactly changed in the cache config value — key, TTL, or default cache store?
  5. Did dependency constraints tighten or loosen, and which transitive packages are affected?
  6. What is the helper function name, and does it collide with packages already in our stack?
  7. What is the "global object" — singleton, container binding, or PHP global? What are its reset semantics across requests and tests?
  8. "Add store and forget method" followed by "rename store to dispatch" — are these distinct operations, or release-note churn?
  9. Do existing settings tables need schema changes, or is the table name purely config?

Integration Approach

Stack fit — Standard service-provider + facade + publishable-config pattern. Works with modern Laravel versions, but setting reads must not depend on mutating config at runtime, since we run config:cache in production.

Migration path — Pilot in one non-critical service:

  1. Pin the current 1.0.x baseline in composer.json.
  2. Branch an upgrade to 1.1.0.
  3. Grep all call sites: ->store(, Setting::store, app(...)->store.
  4. Diff and merge the published config file rather than overwriting.
  5. Run migrations against a scratch database.
  6. Execute the full test suite plus a manual config-cache check.

Compatibility — Verify the PHP/Laravel version matrix, behavior under array/database/redis cache drivers, and that composer dump-autoload --optimize succeeds with the new global helper.

Sequencing

  1. License and semver review — blocking gate.
  2. Confirm alias/deprecation status for the renamed method.
  3. Sandbox upgrade with migration and config-cache verification.
  4. Update internal call sites to dispatch().
  5. Canary deploy; verify reads, writes, and cache invalidation.
  6. Broader rollout.

Avoid upgrading multiple services concurrently — the rename fails silently until the affected code path executes.

Operational Impact

Maintenance — API churn inside a minor release indicates the public surface is still settling. Adopt a strict pin (~1.1.0) and schedule periodic review rather than tracking latest.

Support — Documentation was added this release, which is positive. Confirm upgrade notes exist for the rename, check issue-tracker responsiveness, and assess maintainer count. A single-maintainer project warrants a contingency plan (fork or vendored copy).

Scaling — DB-backed settings are typically read per request, and loading them into a global object at boot can amplify that cost. With caching enabled this is negligible; without it, expect an extra query per request and write contention on the settings table. Clarify cache invalidation on write and consistency across multiple app instances.

Failure modes

  • BadMethodCallException from the renamed method — loud, caught in canary.
  • Stale settings after deploy due to the config-cache change — quiet, highest-risk failure.
  • Global-object state leaking across requests under Octane or long-running queue workers.
  • Helper function redeclaration causing a fatal error at boot.
  • License incompatibility discovered after adoption, forcing a rip-and-replace.
  • Loosened dependency constraints producing non-reproducible builds.

Ramp-up — Roughly half a day for a Laravel developer to publish config, migrate, and wire the facade or helper. Add a day for the 1.1.0 rename sweep and cache-behavior verification.

Recommendation — Do not adopt 1.1.0 broadly until the license and semver questions are answered. A single-service pilot is justified: the configurable table name, helper, and global setting access materially reduce integration glue, and the rename is easy to detect in a contained canary.

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.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console