PhpStorm中模型的Laravel注释

时间:2018-05-25 12:10:03

标签: php laravel phpstorm

我正在创建一个基于Laravel框架的项目,我正在使用PhpStorm。默认情况下,如果我们在PhpStorm中启用Laravel插件,则Laravel具有以下设置。

PhpStorm Settings

现在基于这些设置,如果我创建模型并尝试以下列方式定义所有关系和其他属性

<?php
  /**
   * Class User
   *
   * @package App\Http\Entities
   * @property int $id
   * @property mixed $posts
   */
  class User extends Model
  {

      /**
       * The table associated with the model
       *
       * @var string
       */
      protected $table = 'users';

     /**
      * Indicates if model should be timestampped
      *
      * @var bool
      */
      public $timestamps = false;

     /**
      * The attributes are not mass assignable
      *
      * @var array
      */
     protected $guarded = ['type'];

    /**
     * Get all the posts for a user
     *
     * @return \Illuminate\Database\Eloquent\Relations\HasMany
     */
    public function posts()
    {
       return $this->hasMany('App\Http\Entities\Post');
    }

}

自动我必须添加该类的所有注释或警告由PhpStorm显示,这显然是因为如果我禁用了设置,警告也会消失。

但我很想知道它们实际上代表了什么,因为它必须有一些原因,如果它是默认设置的。另外,在编写其他模型时,我注意到当我在像这样的模型中定义一个函数时

public function userComments()
{
  return $this->hasMany('Some model');
}

在注释中,它被设置为类似

的东西
/**
 * @property $user_comments
 */

现在首先它是一个函数,并且对于我定义函数post()的上述情况,注释被设置为 @property ,这再次让我感到困惑。其次,我喜欢将我的变量和函数定义为 camelCase ,但因为所有这些注释都设置在类的顶部 作为snake_case我不知道如何。

所以我想知道的是它们基本上是什么,定义它们的目的是什么以及它们代表什么。

P.S。这是我第一个使用Laravel框架的项目,我知道它与PHP文档和所有内容有关,但我之前从未真正记录过我的代码。所以任何建议都会有所帮助。

0 个答案:

没有答案