---
suivi: 1205
date: 2026-08-05
sujet: Hotfix — import manquant DossierFoncierController (routes/web.php)
chantier: foncier
type: hotfix
statut: poussé
hash: f5fac7f7
fichiers:
  - routes/web.php
  - tools/diag/diag_routes_imports_1205.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - docs/suivi/SUIVI_1205_fix_import_dossier_foncier_controller.md
---

# SUIVI #1205 — Fix import DossierFoncierController

## PROMPT ENVOYÉ

Régression prod bloquante : `Target class [DossierFoncierController] does not exist`.
Module dossiers foncier inaccessible. Ajouter le `use` manquant ; audit exhaustif
des imports routes/ ; identifier le commit fautif.

## SYNTHÈSE

- Cause : `routes/web.php` référence `[DossierFoncierController::class, …]` sans
  `use App\Http\Controllers\Foncier\DossierFoncierController` → résolution PHP
  en `\DossierFoncierController` (global) → BindingResolutionException.
- Fix : +1 ligne `use` (aucun changement de route).
- Audit `tools/diag/diag_routes_imports_1205.php` : après fix, **aucun** autre
  import manquant (les 5 short names sans `use` sont déjà en FQCN inline).

## ORIGINE (objet 3)

```
git log -S "use App\Http\Controllers\Foncier\DossierFoncierController" --oneline -- routes/web.php
→ 500a99f3 feat(foncier): page Prospection unifiee 3 modes (#1199)
→ 267d2cb1 feat(foncier): ACL par enregistrement, dossiers et fil de suivi (#1075)
```

Dans `500a99f3` (#1199), le diff a **remplacé** la ligne
`use ...DossierFoncierController` par `use ...ProspectionController` au lieu
d’ajouter Prospection à côté. Les ~20 routes dossiers sont restées inchangées
→ bombes à retardement. Hypothèse rebase #1199/#1201 : **confirmée pour #1199**
(pas #1201). Ne pas revert : fix avant.

## DÉPLOIEMENT-TEST

1. `git pull origin main`
2. `php artisan optimize:clear` · `route:clear` · `view:clear`
3. `php artisan journal:sync`
4. Vérifier `/foncier/dossiers` et une fiche dossier

## LEÇON

Quand on ajoute un `use` dans `routes/web.php`, ne jamais écraser une ligne
existante (éditeur / rebase) : ajouter une ligne. Un contrôleur sans `use` ni
FQCN inline = 500 silencieux jusqu’à `route:list` / hit HTTP. Script diag
#1205 à relancer avant push si `routes/` est touché.
