我如何向 PhpStorm 提供提示以找到我的 Laravel 自定义查询构建器方法?
How can I provide hints to PhpStorm to find my Laravel custom query builder methods?
我在 Laravel 中使用自定义 query builders,如下所示:
class MyModel extends Model {
public function newEloquentBuilder($query): MyModelQueryBuilder
{
return new MyModelQueryBuilder($query);
}
}
class MyModelQueryBuilder extends Illuminate\Database\Eloquent\Builder {
// various query methods...
}
由于 Laravel 的所谓 Facades 和魔术方法的使用,PhpStorm 无法在我的自定义查询构建器中找到对这些方法的引用。
我使用 barryvdh/laravel-ide-helper 包为我的模型生成提示,因此它们的方法是可找到和可提示的。我怎样才能以一种简单、可维护的方式为我的查询构建器做同样的事情 类?
例如,我希望能够在使用查询构建器方法时按下 Command-B,并获取该方法的用户列表,例如,就像我可以使用其他完全交叉引用的 类.
您现在需要使用 unofficial @mixin
PHPDoc directive. PhpStorm has had support for it for a few years 将 class 方法添加到模型中。特征可能是在多个模型上执行此操作的最简单方法:
/**
* @mixin MyModelQueryBuilder
*/
trait HasCustomBuilder {
public function newEloquentBuilder($query): MyModelQueryBuilder
{
return new MyModelQueryBuilder($query);
}
}
class MyModel extends Model {
use HasCustomBuilder;
}
我在 Laravel 中使用自定义 query builders,如下所示:
class MyModel extends Model {
public function newEloquentBuilder($query): MyModelQueryBuilder
{
return new MyModelQueryBuilder($query);
}
}
class MyModelQueryBuilder extends Illuminate\Database\Eloquent\Builder {
// various query methods...
}
由于 Laravel 的所谓 Facades 和魔术方法的使用,PhpStorm 无法在我的自定义查询构建器中找到对这些方法的引用。
我使用 barryvdh/laravel-ide-helper 包为我的模型生成提示,因此它们的方法是可找到和可提示的。我怎样才能以一种简单、可维护的方式为我的查询构建器做同样的事情 类?
例如,我希望能够在使用查询构建器方法时按下 Command-B,并获取该方法的用户列表,例如,就像我可以使用其他完全交叉引用的 类.
您现在需要使用 unofficial @mixin
PHPDoc directive. PhpStorm has had support for it for a few years 将 class 方法添加到模型中。特征可能是在多个模型上执行此操作的最简单方法:
/**
* @mixin MyModelQueryBuilder
*/
trait HasCustomBuilder {
public function newEloquentBuilder($query): MyModelQueryBuilder
{
return new MyModelQueryBuilder($query);
}
}
class MyModel extends Model {
use HasCustomBuilder;
}