Schneespur — Open-source winter service documentation software (PWA + Admin). GPS tracking via OwnTracks, weather data, photo evidence, and legally compliant service records for winter maintenance operators. License: AGPL-3.0-or-later
39 lines
784 B
PHP
39 lines
784 B
PHP
<?php
|
|
|
|
namespace App\Services\Extension;
|
|
|
|
use Illuminate\Support\Facades\Log;
|
|
|
|
abstract class ExtensionRegistry
|
|
{
|
|
protected array $items = [];
|
|
|
|
public function register(string $slug, mixed $entry): void
|
|
{
|
|
if (isset($this->items[$slug])) {
|
|
Log::warning(static::class . ": overwriting existing registration '{$slug}'");
|
|
}
|
|
|
|
$this->items[$slug] = $entry;
|
|
}
|
|
|
|
public function resolve(string $slug): mixed
|
|
{
|
|
return $this->items[$slug] ?? null;
|
|
}
|
|
|
|
public function all(): array
|
|
{
|
|
return $this->items;
|
|
}
|
|
|
|
public function has(string $slug): bool
|
|
{
|
|
return isset($this->items[$slug]);
|
|
}
|
|
|
|
public function remove(string $slug): void
|
|
{
|
|
unset($this->items[$slug]);
|
|
}
|
|
}
|