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 Env Keys Checker Laravel Package

msamgan/laravel-env-keys-checker

Laravel Env Keys Checker compares your .env and .env.example files to spot missing or extra environment variables. Run a simple Artisan command to keep configs in sync and catch deployment issues before they happen.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

What this release is: v2.0.0 is a major-version bump whose only substantive changes are (a) a Dependabot bump of dependabot/fetch-metadata (CI tooling, no runtime effect) and (b) Laravel 13.x compatibility contributed by @laravel-shift. There are no new features, no documented deprecations, and no stated bug fixes.

Architecture fit: Low-coupling, single-purpose developer/CI tooling. Best modelled as a require-dev dependency that adds an Artisan command and no request-path footprint. It should not enter the production runtime dependency graph, and it should not be on the critical path of a deploy — it is a pre-flight validation gate. Assumption to confirm: the package's core behaviour is comparing environment keys referenced by the application/config against .env / .env.example; verify the exact command surface and exit-code semantics before designing a gate around it.

Integration feasibility: High. Standard Composer install, Laravel package auto-discovery, likely an optionally publishable config file. Realistic effort is well under a day for a single Laravel application, most of which is deciding where the check belongs in CI rather than wiring it up.

Technical risk:

  • Major-version semantics. A 1.9.1 → 2.0.0 jump for "Laravel 13 compatibility" strongly implies the floor on supported Laravel/PHP versions was raised. Applications on older Laravel lines are the exposed population; the risk is a silent constraint conflict or, worse, a resolved-but-untested combination.
  • Single-maintainer concentration. Bus-factor risk is the dominant long-term concern, though the automated Dependabot activity is a positive hygiene signal.
  • Laravel 13 readiness. @laravel-shift automation is a reliable signal of framework compatibility, but confirm Laravel 13 is a released target you actually run before letting this drive your upgrade decision.

Key questions for the maintainer / for verification:

  1. What are the composer.json constraints in v2.0.0 for laravel/framework, illuminate/*, and php?
  2. Were any command signatures, config keys, output formats, or exit codes changed between 1.9.1 and 2.0.0?
  3. Is CI green against the full declared support matrix, or only the newest line?
  4. Does the checker resolve keys referenced dynamically (e.g. env($var) in loops, config-cache output), or only static references?
  5. What is the intended invocation — local pre-commit, CI step, or deploy hook?

Integration Approach

Stack fit: Suitable for any Laravel estate, but the value is proportional to the number of applications and environments. Highest leverage where multiple services share .env conventions, where config is frequently edited, or where "works locally, blank in staging" incidents have a recurring cause.

Migration path: Treat the major bump as two separate decisions — adopt the package and adopt v2.0.0.

  • Start on a branch, install v2.0.0 as a dev dependency, run the check against one representative application.
  • If the app is on a Laravel version below the v2.0.0 floor, pin ^1.9.1 for now; the functional capability is unchanged, so deferring the major version costs nothing.
  • Once the framework floor is satisfied, upgrade in the same change as the Laravel 13 upgrade rather than as a separate event.

Compatibility: Do not assume — read the released composer.json before committing to a version. Record the supported Laravel/PHP matrix in your dependency register so the next major bump is a lookup rather than an investigation.

Sequencing:

  1. Confirm version constraints and command behaviour (day 0).
  2. Pilot in one repository, run locally and manually (composer install, run the command) to observe real output and false positives.
  3. Add to CI as non-blocking (warn-only) for one or two sprints; capture what it flags.
  4. Only then promote to a blocking gate, and only if the false-positive rate is acceptably low.
  5. Roll out to remaining repositories once the pattern and the runbook are settled.

Operational Impact

Maintenance: Minimal. There is no runtime surface to patch, no database or infrastructure footprint, and no configuration drift beyond the version constraint itself. Automation (Dependabot) means update PRs will arrive on their own; the ongoing cost is review attention, not engineering time.

Support: Community open-source with no SLA and effectively one active maintainer. Acceptable for a dev-only quality gate; not acceptable as a dependency of anything a customer experiences. Keep the blast radius at CI by never installing it in production.

Scaling: Negligible. Execution is build-time and per-application, so cost scales linearly with repository count and is dwarfed by any test suite. There is no runtime scaling consideration at all. The only scaling concern is governance: N repositories means N places to bump the version and N chances for the gate to be disabled quietly.

Failure modes to design against:

  • Blocking gate on false positives. Dynamic environment key access and config caching are the classic sources of spurious failures; this is why the CI step must be warn-only first.
  • Silent disablement. A noisy gate gets commented out. Track enabled/disabled status per repository or it will quietly decay into dead configuration.
  • Version skew. Mixed v1/v2 across the estate with differing Laravel floors means inconsistent behaviour during audits.
  • False confidence. A passing check does not mean environment configuration is correct — only that named keys are present. It is not a substitute for deploy-time validation or smoke tests.
  • Abandonment. With a single maintainer, have a documented exit: the command is thin enough that replacing it with a bespoke script is a plausible fallback if the package stalls.

Ramp-up: Essentially none. A Laravel developer understands the problem domain intuitively and the command is self-describing. The real ramp-up cost is organisational, not technical: agreeing the gate's blocking/non-blocking status, its position in the pipeline, and who owns remediation when it fires. Budget a short team conversation for that, and near-zero for the tooling itself.

TPM recommendation: Adopt, scoped as a dev-only CI quality gate, with a verify-then-pilot-then-promote rollout. The v2.0.0 change itself is low-risk and low-value — the meaningful decision is introducing the capability, not the version number. Gate adoption on confirming the Laravel/PHP floor and on a two-sprint warn-only trial to measure false-positive rate.

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.
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core