如何避免警告:在PhpStorm / Lumen中正確標記call_user_func時,確保在相應的'try'區塊中拋出異常?
P粉009186469
P粉009186469 2023-09-03 22:55:00
0
1
314
<p>我的 Lumen 應用程式中有驗證中間件,如下所示:</p> <pre class="brush:php;toolbar:false;">class Authenticate { public function handle(Request $request, Closure $next, string|null $guard = null): mixed { try { /**@var \Illuminate\Auth\RequestGuard $requestGuard*/ $requestGuard = $this->auth->guard($guard); $signedIn = $requestGuard->check(); // ... } catch (NoUserIdProvidedException) { // ... } // ... } }</pre> <p>它工作得很好,但 PhpStorm 報告說,異常(我從示例中刪除了大部分,有一些)不是由包含塊拋出的,儘管它們是這樣。 </p> <p>似乎在 RequestGuard 的深處它使用了 call_user_func</p> <pre class="brush:php;toolbar:false;">return $this->user = call_user_func( $this->callback, $this->request, $this->getProvider() );</pre> <p>呼叫 AuthServiceProvider 中設定的閉包,該閉包使用自訂 Security 類別上的中間件方法:</p> <pre class="brush:php;toolbar:false;">class AuthServiceProvider extends ServiceProvider { public function boot(): void { $this->app['auth']->viaRequest('api', function ($request) { $security = new Security(); return $security->middleware($request); }); } }</pre> <p>在我看來,中間件的文件區塊正確無誤</p> <pre class="brush:php;toolbar:false;">/*** @param 請求 $request * @return bool|物件|null * @拋出InvalidDomainUser * @拋出NoDomainUserException * @拋出NoTokenOnRecordException * @拋出NoTokenProvidedException * @拋出NoUserException * @拋出NoUserIdProvidedException*/ public function middleware(Request $request): object|bool|null {</pre> <p>新增文件區塊,例如:</p> <pre class="brush:php;toolbar:false;">/*** @拋出NoUserIdProvidedException*/</pre> <p>在閉包中,身份驗證提供者或處理代碼不會使警告消失,是否有辦法對程式碼進行註解或鍵入提示以避免誤報?我不想直接關閉檢查。 </p>
P粉009186469
P粉009186469

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!