cannibal/parameter-bundle provides an object-oriented abstraction for managing dynamic parameters (e.g., configs, settings, or runtime variables) in a Laravel/PHP application. This aligns well with:
composer.json constraints beyond Laravel).ParameterBag but wanting Laravel-specific integrations.config/, environment variables, or static classes to a structured system..env usage.config('key'), global vars, or static helpers).app.php settings) with the bundle’s Parameter objects.Parameter objects.config() calls) via deprecation warnings.ParameterSourceInterface, but requires manual implementation for non-standard backends (e.g., DynamoDB).composer require cannibal/parameter-bundle.config/parameter.php.$this->app->bind('app.parameters', function ($app) {
return new Parameter(new DatabaseParameterSource());
});
Parameter objects into services/controllers:
public function __construct(private Parameter $parameters) {}
$this->parameters->get('api.key');
ValidatedData) if missing.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Parameter source unavailability (e.g., DB down) | App crashes or falls back to defaults. | Implement fallback sources (e.g., cache → config file). |
| Invalid parameter data | Runtime errors or incorrect behavior. | Add validation layers (e.g., Laravel’s ValidatedData). |
| Caching inconsistencies | Stale parameter values. | Use short TTLs or event-based invalidation. |
| Bundle incompatibility | Breaks on Laravel updates. | Pin bundle version; fork if critical. |
config() calls in codebase (measured via static analysis).How can I help you explore Laravel packages today?