127 lines
No EOL
3.6 KiB
Markdown
127 lines
No EOL
3.6 KiB
Markdown
# 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:
|
|
|
|
```php
|
|
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`**
|
|
|
|
```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:
|
|
|
|
```bash
|
|
# 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:
|
|
|
|
```php
|
|
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:
|
|
|
|
```bash
|
|
# 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. |