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

Config Writer Laravel Package

larapack/config-writer

Larapack Config Writer lets Laravel apps persist configuration changes at runtime, updating, adding, or removing config keys in files. Useful for editable settings in admin panels without manual file edits.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

Build vs. buy for "editable settings." This package anchors the cheap end of the option space: the functionality is a small wrapper around reading a PHP config array, mutating it via dot-notation, and writing it back with var_export. Any vendor evaluation, procurement conversation, or "should we build a settings service?" debate should be measured against that baseline. A senior engineer can reproduce this in roughly half a day; the buy decision therefore rests entirely on maintenance, not capability.

Where settings live: file vs. database. The core product decision this package forces is whether user-editable configuration belongs in config/*.php at all. Files imply single source of truth per host, deploy-coupled state, and no audit trail. A database-backed settings table implies tenant scoping, per-row permissions, change history, and safe multi-node rollout. The package makes the file path trivially easy, which is precisely why teams drift into it and later pay a migration tax. Use it as the concrete artifact in that architecture conversation rather than as an implementation choice.

Feature scoping for admin/settings screens. If a story reads "an admin can change application options without a deploy," this package defines the minimum viable version of that story — and reveals what is not included: no validation layer, no typed values, no permission model, no rollback, no audit log. That gap list is the actual scope of the epic. Surface it before estimation, not after.

Installer and first-run wizard flows. This is the one genuinely defensible use case. Writing APP_KEY, database credentials, or mail transport settings during an install wizard happens before a working database connection exists — a niche no DB-backed settings package can serve. If your roadmap includes a self-hosted installer or a CLI setup command, this is the pattern to reach for.

Roadmap signal on market direction. A 2016 last release with an archived repository is a leading indicator that the ecosystem solved this problem differently (database-backed settings, environment variables, secret managers, feature-flag services). Treat it as evidence for planning, not as a candidate dependency.

Maintenance liability accounting. Adopting archived code means the fork is yours. Whether to budget that is a product call about how long the feature must live — a two-quarter internal tool is fine; a five-year customer-facing surface is not.

When to Consider This Package

Consider it only when all of the following hold:

  • The application is pinned to a Laravel version this package actually resolves against. Given the 2016 release date, assume Laravel 5.x-era framework internals and verify against your actual support matrix before anything else — this is the first gate, and it likely fails for Laravel 9+ / PHP 8+.
  • The deployment is a single server (or a small number of hand-managed hosts) with a writable config/ directory. No containers with immutable filesystems, no read-only mounts, no horizontal autoscaling.
  • php artisan config:cache is not part of the deploy pipeline. Cached config bypasses the runtime merge entirely, so the package's writes silently stop taking effect — a failure mode that looks like a bug for weeks.
  • There is no database available at the moment the value must be persisted (installer, bootstrap, first-run provisioning).
  • The values are operator-facing and low-churn — mail driver, queue backend, API endpoint URLs — not per-user or per-tenant preferences.
  • You accept that the fork is yours and you have someone who can own it.

Look elsewhere — specifically, do not adopt — when any of these are true:

  • Multi-node or autoscaled infrastructure. Config written on one node is invisible to the others; you get split-brain settings and non-reproducible bugs.
  • You need auditability, validation, or role-based access. Config files offer none of these; retrofitting them is a rewrite.
  • You need to store secrets. Plaintext PHP arrays in the repository or on disk are the wrong store; use a secret manager or encrypted DB columns.
  • You need type safety. PHP config arrays are loosely typed; a value written as a string and read as truthy is a class of bug in itself.
  • Laravel 9+ is on the roadmap. Even if it resolves today, an archived package guarantees a forced migration at the worst possible moment — mid-upgrade, with no upstream to appeal to.
  • A maintained alternative fits. spatie/laravel-settings or similar DB-backed packages cover the admin-panel use case with validation, typing, and migrations included. The only reason to prefer this package is the pre-database installer scenario.

How to Pitch It (Stakeholders)

For executives — one line: Not recommended for adoption. It is archived, last released in 2016, and the underlying capability is small enough to build internally in under a day if we ever genuinely need it.

The argument in three points:

  1. It solves a problem we should not solve this way. Persisting settings by rewriting PHP configuration files works on one server and breaks on many. Our infrastructure direction is containers and horizontal scaling; this pattern is directly opposed to that, so adopting it today means funding a migration later.

  2. The capability is not worth buying. The package is a thin convenience wrapper — dot-notation config edits and a structured file write. If a specific workflow needs it, engineering can implement and own it with better error handling and validation than the archived original.

  3. The maintenance cost is asymmetric. Zero cost while nothing goes wrong; total cost the moment it does, because there is no upstream, no security patching, and no compatibility work for future Laravel or PHP releases. That risk is small in probability but lands during framework upgrades, which are exactly when teams have the least slack.

What we recommend instead: for admin-editable application settings, use a database-backed settings store with typed values, validation, and a change log. For the narrower installer/first-run scenario — where no database exists yet — a small internal helper is the right-sized answer.

For engineering: the realistic effort to write an equivalent is half a day plus tests. The realistic effort to adopt this package includes verifying it against our Laravel and PHP versions (likely a blocker), standing up a fork and a composer.json VCS entry or path repository, and documenting the config-cache caveat for operators. The build path is cheaper and leaves us owning something current.

Decision requested: do not add this dependency. If a settings-editing requirement appears on the roadmap, route it to a database-backed solution and, if the installer flow is in scope, to a small internal implementation scoped to that flow alone.

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