Maison > Questions et réponses > le corps du texte
P粉8055354342023-09-04 21:30:05
La façon dont fonctionne la garde semblait un peu trop complexe pour une analyse statique, j'ai donc refactorisé pour déplacer le code personnalisé sous-jacent hors de la garde et directement dans le middleware, ce qui a fonctionné et les exceptions sont désormais détectées correctement
.class Authenticate { public function handle(Request $request, Closure $next, string|null $guard = null): mixed { try { $security = new Security(); $user = $security->middleware($request); $signedIn = !empty($user->id); // ... } catch (NoUserIdProvidedException) { // ... } // ... } }
Les classes de sécurité sont une logique personnalisée, il est important que le bloc de documentation avec @throws soit suffisamment proche pour être trouvé par l'EDI
class Security{ /** * @param Request $request * @return bool|object|null * @throws InvalidDomainUser * @throws NoDomainUserException * @throws NoTokenOnRecordException * @throws NoTokenProvidedException * @throws NoUserException * @throws NoUserIdProvidedException */ public function middleware(Request $request): object|bool|null { // .... } }