Files
trafficpumper/app/Serp/SerpProviderRegistry.php
T
2026-08-29 15:53:53 +03:00

27 lines
628 B
PHP

<?php
namespace App\Serp;
use App\Serp\Contracts\SerpProvider;
use App\Serp\Exceptions\ProviderConfigurationException;
final class SerpProviderRegistry
{
private array $providers = [];
public function register(SerpProvider $provider): void
{
$this->providers[$provider->key()] = $provider;
}
public function resolve(?string $key = null): SerpProvider
{
$key = $key ?: config('serp.provider');
if (! $key || ! isset($this->providers[$key])) {
throw new ProviderConfigurationException('Unknown provider.');
}
return $this->providers[$key];
}
}