如何使用phpstan配置第三方方法的返回类型?

问题描述 投票:0回答:2

我正在开发 Laravel 应用程序。在 Laravel 中,您可以使用

Auth::user()
获取当前经过身份验证的用户。
Auth::user()
的返回类型是
Authenticatable
(这是Laravel提供的接口),但我知道这个函数总是会返回更具体接口的实现。

如何配置 phpstan 以便它知道

Auth::user()
的返回类型是这个更具体的接口吗?

phpstan
2个回答
2
投票

有几种方法可以做到这一点。

  • 您可以使用 PHPStan 的 Laravel 扩展,称为 Larastan。此扩展应该有助于理解

    Auth::user()

    的正确返回类型
  • 您可以写一个

    DynamicMethodReturnTypeExtension
    有关它的更多详细信息是这里

  • 您可以编写一个存根文件来覆盖

    user
    方法的返回类型。您可以在此处阅读有关存根文件的更多信息。


0
投票

Auth
外观编写存根。例如,如果要将返回类型从
\Illuminate\Contracts\Auth\Authenticatable
覆盖为
\App\User
,请创建以下存根:

<?php

namespace Illuminate\Support\Facades;

/**
 * @method static \App\User|null user()
 */
class Auth extends Facade {}

更多关于如何创建存根的信息这里

© www.soinside.com 2019 - 2024. All rights reserved.