3.6 KiB
3.6 KiB
Hotfix für DomainContext Binding-Problem
🚨 Problem
Der RouteServiceProvider versucht DomainContext aus dem Service Container zu holen, aber die Klasse hat required Parameter und kann nicht automatisch aufgelöst werden.
⚡ Sofort-Lösung (Hotfix)
Option 1: RouteServiceProvider temporär deaktivieren
File: app/Providers/RouteServiceProvider.php
Kommentiere die problematische Zeile aus:
protected function loadDomainAwareRoutes(): void
{
// TEMPORÄR AUSKOMMENTIERT BIS CLAUDE v2 IMPLEMENTIERT
// /** @var DomainContext $context */
// $context = app(DomainContext::class);
// Fallback: Lade alle Routen für alle Domains
$this->loadAllDomainRoutesForCaching();
// Original code auskommentiert:
/*
$this->loadSharedRoutes();
if (config('app.debug')) {
\Log::channel('domain')->info('loadDomainAwareRoutes', ['context' => $context]);
}
match ($context->type) {
'main' => $this->loadDomainRoutes('main', 'main.php'),
'main-shop' => [
$this->loadDomainRoutes('shop', 'shop.php'),
$this->loadDomainRoutes('portal', 'portal.php'),
],
'user-shop' => [
$this->loadDomainRoutes('user-shop', 'user-shop.php'),
$this->loadDomainRoutes('portal', 'portal.php'),
],
'crm' => $this->loadDomainRoutes('crm', 'crm.php'),
'portal' => $this->loadDomainRoutes('portal', 'portal.php'),
'checkout' => $this->loadDomainRoutes('checkout', 'checkout.php'),
default => $this->loadAllDomainRoutesForCaching(),
};
*/
}
Option 2: DomainServiceProvider temporär deaktivieren
File: config/app.php
'providers' => [
// ... andere providers
// TEMPORÄR AUSKOMMENTIERT:
// App\Providers\DomainServiceProvider::class,
// ... rest of providers
];
🎯 Permanente Lösung: Claude v2 Implementation
Nach dem Hotfix, implementiere Claude v2:
# 1. Hotfix anwenden (siehe oben)
# 2. Cache löschen
php artisan config:clear
php artisan route:clear
# 3. Claude v2 implementieren
cp dev/subdomain-optimization-claude-v2/src/Http/Middleware/SubdomainResolver.php app/Http/Middleware/
# 4. Middleware registrieren in app/Http/Kernel.php
# (siehe IMPLEMENTATION.md für Details)
# 5. RouteServiceProvider zurück auf einfache Routen
# (entferne domain-aware routing logic)
🔄 RouteServiceProvider für Claude v2 anpassen
Nach Claude v2 Implementation, vereinfache den RouteServiceProvider:
protected function loadDomainAwareRoutes(): void
{
// Einfacher Ansatz: Lade Standard-Web-Routen
// Domain-Logic wird von SubdomainResolver-Middleware behandelt
$this->loadSharedRoutes();
// Lade alle Web-Routen (Domain-Filtering passiert in Middleware)
Route::group([], base_path('routes/web.php'));
// Optional: Spezielle Domain-Routen falls nötig
if (file_exists(base_path('routes/domains'))) {
foreach (glob(base_path('routes/domains/*.php')) as $routeFile) {
Route::group([], $routeFile);
}
}
}
⚡ Sofortige Ausführung
Führe diesen Hotfix jetzt sofort aus:
# Backup erstellen
cp app/Providers/RouteServiceProvider.php app/Providers/RouteServiceProvider.php.backup
# Config auskommentieren
sed -i 's/App\\Providers\\DomainServiceProvider::class,/\/\/ App\\Providers\\DomainServiceProvider::class, \/\/ TEMPORÄR DEAKTIVIERT/' config/app.php
# Cache löschen
php artisan config:clear
php artisan route:clear
# Test ob Anwendung läuft
php artisan route:list
Danach sollte die Anwendung wieder laufen und du kannst in Ruhe Claude v2 implementieren.