如果我使用 use 导入 class,我应该在 PHPDoc 中使用 FQN 吗?

Should I use the FQN in PHPDoc if I'm importing the class with use?

假设我有一个 UserController class 并且我正在导入 App\User class 和 use。在内部,有一个 show() 方法接收 User.

的实例
namespace App\Http\Controllers;

use App\User;

class UserController extends Controller
{
    /**
     * Show user info
     * 
     * @param  User $user
     * @return Illuminate\Http\JsonResponse
     */
    public function show(User $user)
    {
        // Do something...
    }
}

是否建议在 PHPDoc 中添加 User 的完全限定名称,即使我使用 use 导入 class?

如果没有 use 语句,则使用 FQN,因为它会被识别为不同的 class,在您的情况下为未导入的 \JsonResponse

至于User class,使用简称。

use语句导入class更方便,在docblock中写简称

也可以使用class别名,例如:

namespace App\Http\Controllers;

use App\User;
use Illuminate\Http\JsonResponse as Response;

class UserController extends Controller
{
    /**
     * Show user info
     * 
     * @param  User $user
     * @return Response
     */
    public function show(User $user)
    {
        // Do something...
    }

}