fastd/config
Lightweight configuration component for FastD PHP applications: load and merge PHP config files, resolve environment-specific values and variables, access settings through a simple repository API, and cache parsed configuration for faster production bootstrap.
ConfigInterface shape across polyglot PHP services — instead of each team inventing get('db.host') semantics — evaluating this package forces the conversation about what the contract actually is (merge precedence, env var interpolation, caching, immutability).illuminate/* or symfony/*.Adopt it when:
fastd/fastd or another Swoole-centric stack and want config semantics consistent with the rest of that ecosystem.Look elsewhere when:
illuminate/config is already installed, already cached via config:cache, and already understood by every engineer. There is no product reason to add a second config system..env parsing. That's vlucas/phpdotenv; don't ask a config repository to do it.To executives: This is a small, MIT-licensed, single-purpose configuration component from the FastD PHP framework family. The code risk is low — it's a narrow surface with a permissive license and a trivial exit path, because we would consume it behind our own interface. The portfolio risk is higher: three GitHub stars, zero known dependents, one maintainer. My recommendation is therefore pilot, don't standardize — use it to settle the config-abstraction question for our non-Laravel services, with a decision gate at the end of the spike. Cost of reversal is roughly one interface and a day of work. We should not put it on any revenue-critical path, and we should not adopt it in Laravel services at all, where the built-in config layer already does this job.
To engineering: Treat it as a config repository — loaders, environment override merge, dot-notation reads, and a resolved config set you can cache at worker boot. Integration is one to two days: wrap it in our own ConfigInterface, pin the version, add contract tests around merge precedence and env interpolation, and keep the adapter thin enough that swapping in illuminate/config or a hand-rolled loader is a single-file change. Two diligence items before we merge anything: confirm the published release tag actually exists (the recorded date looks wrong), and confirm PHP version support against our runtime matrix. If either fails, we build the 200-line loader ourselves — at this scale, that is a genuinely competitive option.
How can I help you explore Laravel packages today?