2017-11-27 3 views
1

私はUserControllerクラスを持っており、useを使ってApp\Userクラスをインポートしています。内部にはUserのインスタンスを受信するshow()メソッドがあります。クラスを使用してインポートする場合は、PHPDocでFQNを使用する必要がありますか?

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... 
    } 

} 

はそれが私がuseでクラスをインポートしていても、たPHPDocにUserの完全修飾名を追加することをお勧めしますか?

+0

クラスをインポートするの全体のポイントは、あなたが*完全修飾名を使用する必要はありません*ということです。それはすべてです。 – iainn

+2

... * "コード**で完全修飾名**を使用する必要はありません。" * 'use'はコメントに影響しません。質問は* if *と* how * PHPDocが 'use'宣言を使用するかどうかについてです。 – axiac

+1

これはコードとPHPDocブロックの両方に適用されます。プログラムでphpdocのコメントを解析するものは、 'use'ステートメントを考慮に入れてください。私がここ数年使ったエディタは、少なくともPHPDocumentorのようなツールと同じです。 – iainn

答えて

2

\JsonResponseとしてインポートされていない場合は、異なるクラスとして認識されるため、useという文がない場合はFQNを使用してください。

Userクラスの場合、短い名前を使用してください。

useステートメントでクラスをインポートし、docblockに短い名前を書く方が便利です。

また、クラスのエイリアスは、例えば、使用することができます。

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... 
    } 

} 
+0

PHPDocは 'User'クラスが' use'でインポートされているので、FQNを使う必要はありません。 – Camilo

+1

これは、使用されるツールによって異なりますが、Netbeans、Eclipse、PhpStormのようなPHP IDEや、phpDocumentorやapigenのようなドキュメンテーション・ジェネレータによって理解されています。 – PeterM

+1

@Camilo PHPDoc自体はまったくスマートではありません。これは単にコメントの書式設定の仕方です。 IDE(または実際にコメントを解析して何かを実行しているもの)が別の問題であるかどうか。ほとんどのツール(私の経験では少なくとも)は、 'use'ステートメントを考慮に入れます。 – iainn

関連する問題