- WebPortalContext::fromRequest() buendelt die zuvor ~6x je Route-Closure wiederholte Host->Portal-Ableitung (portal, language, portalValues, domainConfig). - DomainAssetContext::applyWebDomainConfig() ist die Single Source of Truth fuer die Domain-/Theme-Anwendung (config + View::share + Vite); die fruehere $applyWebDomainConfig-Closure in routes/web.php ist nur noch ein duenner Delegations-Wrapper, damit Bare-Root- und Edition-Home-Route unveraendert per Closure aufrufen koennen. - Die 6 Portal-Seiten-Closures (Kategorie, Detail, Veroeffentlichen, Suche, Newsrooms, Newsroom-Detail) sowie Preise nutzen jetzt den zentralen Kontext. Abgesichert durch die 92 Web/-Tests (jede Seite laeuft ueber den neuen Kontext). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
42 lines
1.3 KiB
PHP
42 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Support;
|
|
|
|
use App\Enums\Portal;
|
|
|
|
/**
|
|
* Öffentlicher Portal-Kontext (Presseecho/Businessportal24) einer Web-Landingpage,
|
|
* abgeleitet aus dem Host. Bündelt die zuvor in jeder Route-Closure wiederholte
|
|
* Host→Portal-Ableitung samt Anwendung der Domain-/Theme-Konfiguration.
|
|
*/
|
|
class WebPortalContext
|
|
{
|
|
/**
|
|
* @param list<string> $portalValues Eigenes Portal plus `both`.
|
|
* @param array<string, mixed> $domainConfig
|
|
*/
|
|
private function __construct(
|
|
public readonly string $domainKey,
|
|
public readonly Portal $portal,
|
|
public readonly string $language,
|
|
public readonly array $portalValues,
|
|
public readonly array $domainConfig,
|
|
) {}
|
|
|
|
public static function fromRequest(): self
|
|
{
|
|
$host = request()->getHost();
|
|
|
|
[$domainKey, $portal] = str_contains($host, 'presseecho')
|
|
? ['presseecho', Portal::Presseecho]
|
|
: ['businessportal24', Portal::Businessportal24];
|
|
|
|
return new self(
|
|
domainKey: $domainKey,
|
|
portal: $portal,
|
|
language: app()->getLocale(),
|
|
portalValues: [$portal->value, Portal::Both->value],
|
|
domainConfig: DomainAssetContext::applyWebDomainConfig($domainKey),
|
|
);
|
|
}
|
|
}
|