如何外部扩展Laravel中ColumnDefinition类的PHPDoc @method注解
解决Laravel ColumnDefinition::autoIncrement()方法IDE注解警告问题
方案一:IDE自定义存根文件(推荐)
不用复制原类所有代码,只需要创建一个仅补充目标方法注解的存根文件,让IDE优先读取这个文件的注解,同时保留原类的所有方法提示:
- 创建一个新的PHP文件,内容如下:
<?php namespace Illuminate\Database\Schema; /** * @method $this autoIncrement(bool $value = true) 设置列是否自增 */ class ColumnDefinition extends \Illuminate\Database\Schema\ColumnDefinition {}
- 将这个文件添加到IDE的存根目录:
- 以PhpStorm为例:打开
Settings > Languages & Frameworks > PHP > Stubs,点击+按钮选择这个文件,保存设置即可。
- 以PhpStorm为例:打开
IDE会自动合并原类的方法提示和你补充的注解,调用->autoIncrement(false)时不会再弹出警告,而且Laravel更新时你不需要同步修改这个文件,因为它只是继承原类,只补充了缺失的参数注解。
方案二:Laravel IDE Helper局部补充
如果你已经在用Laravel IDE Helper,可以在ide-helper.php中添加一个辅助类,不用复制原类的所有@method注解:
<?php /** * @mixin \Illuminate\Database\Schema\ColumnDefinition * @method $this autoIncrement(bool $value = true) 设置列是否自增 */ class _ColumnDefinitionHelper {}
之后IDE会识别这个辅助类的注解,对原类的autoIncrement()方法补充参数提示,不会覆盖原类的其他方法提示。
内容的提问来源于stack exchange,提问作者rozsazoltan
相关产品推荐
相关产品推荐

