Ce document n’est pas disponible en français (fr). La version en English (en) est affichée.
webkernel/config
Package Provider Configuration & Asset Publishing
Sur cette page
Packages declare Webkernel Config files via the shared ServiceProvider::CONFIG constant.
Provider CONFIG Specification
Package providers declare configuration files using an associative array structure with path, publish destination, and optional tag metadata:
namespace Acme\Telemetry\Providers;
use Webkernel\ServiceProvider;
class TelemetryProvider extends ServiceProvider
{
public const CONFIG = [
'telemetry' => [
'path' => __DIR__ . '/../../config/telemetry.php',
'publish' => \config_path('telemetry.php'),
'tag' => 'telemetry-config',
],
];
}
Supported Array Formats
- Rich Metadata Array (Recommended):
``php public const CONFIG = [ 'courier' => [ 'path' => __DIR__ . '/../../config/courier.php', 'publish' => \config_path('courier.php'), 'tag' => 'courier-config', ], ]; ``
- Simple Keyed Path:
``php public const CONFIG = [ 'courier' => __DIR__ . '/../../config/courier.php', ]; ``
Asset Publishing Manifest
Tools, installers, and CLI commands publish package configuration files by querying Config::publishables():
use Webkernel\Config\Config;
// Get all publishable configurations across all registered providers
$publishables = Config::publishables();
foreach ($publishables as $item) {
echo "Key : {$item->key}\n";
echo "Source : {$item->source}\n";
echo "Target : {$item->target}\n";
echo "Tag : {$item->tag}\n";
echo "Package : {$item->package}\n";
}
Filtering by Tag
// Retrieve only items matching the specified tag
$courier_items = Config::publishables('courier-config');