我正在创建一个基于Laravel框架的项目,我正在使用PhpStorm。默认情况下,如果我们在PhpStorm中启用Laravel插件,则Laravel具有以下设置。
现在基于这些设置,如果我创建模型并尝试以下列方式定义所有关系和其他属性
<?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文档和所有内容有关,但我之前从未真正记录过我的代码。所以任何建议都会有所帮助。