Optimierung 4.1: Web-Portal-/Domain-Kontext extrahiert
- 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>
This commit is contained in:
parent
987a5a2c42
commit
e5a63bcedd
4 changed files with 106 additions and 98 deletions
|
|
@ -3,10 +3,42 @@
|
|||
namespace App\Support;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\View;
|
||||
use Illuminate\Support\Facades\Vite;
|
||||
|
||||
class DomainAssetContext
|
||||
{
|
||||
/**
|
||||
* Wendet die Domain-/Theme-Konfiguration einer öffentlichen Web-Ausgabe an
|
||||
* (config + View::share + Vite) und liefert die aufgelöste Domain-Config.
|
||||
* Single Source of Truth für die zuvor je Route-Closure wiederholte Logik.
|
||||
*
|
||||
* @return array<string, mixed>
|
||||
*/
|
||||
public static function applyWebDomainConfig(string $domainKey): array
|
||||
{
|
||||
/** @var array<string, mixed> $domainConfig */
|
||||
$domainConfig = config("domains.domains.{$domainKey}", []);
|
||||
|
||||
config([
|
||||
'app.theme' => $domainConfig['theme'] ?? $domainKey,
|
||||
'app.view_prefix' => $domainConfig['view_prefix'] ?? 'web',
|
||||
'app.domain_name' => $domainConfig['domain_name'] ?? request()->getHost(),
|
||||
'app.url' => $domainConfig['url'] ?? config('app.url'),
|
||||
]);
|
||||
|
||||
View::share('theme', $domainConfig['theme'] ?? $domainKey);
|
||||
View::share('viewPrefix', $domainConfig['view_prefix'] ?? 'web');
|
||||
View::share('domainName', $domainConfig['domain_name'] ?? request()->getHost());
|
||||
View::share('domainConfig', $domainConfig);
|
||||
View::share('domainUrl', $domainConfig['url'] ?? config('app.url'));
|
||||
View::share('assetUrl', self::staticAssetOrigin($domainConfig));
|
||||
|
||||
self::configureVite($domainConfig);
|
||||
|
||||
return $domainConfig;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array<string, mixed> $defaults
|
||||
* @param array<string, array<string, mixed>> $configuredDomains
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue