mirror of
https://github.com/flarum/core.git
synced 2025-07-30 21:20:24 +02:00
feat: STUBS!
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Database\Eloquent\Relations;
|
||||
|
||||
/**
|
||||
* @template TRelatedModel of \Illuminate\Database\Eloquent\Model
|
||||
* @template TChildModel of \Illuminate\Database\Eloquent\Model
|
||||
* @extends Relation<TRelatedModel>
|
||||
*/
|
||||
class BelongsTo extends Relation
|
||||
{
|
||||
/** @phpstan-return TChildModel */
|
||||
public function associate();
|
||||
|
||||
/** @phpstan-return TChildModel */
|
||||
public function dissociate();
|
||||
|
||||
/** @phpstan-return TChildModel */
|
||||
public function getChild();
|
||||
|
||||
/**
|
||||
* Get the results of the relationship.
|
||||
*
|
||||
* @phpstan-return ?TRelatedModel
|
||||
*/
|
||||
public function getResults();
|
||||
}
|
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Database\Eloquent\Relations;
|
||||
|
||||
/**
|
||||
* @template TRelatedModel of \Illuminate\Database\Eloquent\Model
|
||||
* @extends Relation<TRelatedModel>
|
||||
*/
|
||||
class BelongsToMany extends Relation
|
||||
{
|
||||
/**
|
||||
* Find a related model by its primary key or return new instance of the related model.
|
||||
*
|
||||
* @param mixed $id
|
||||
* @param array<int, mixed> $columns
|
||||
* @return \Illuminate\Support\Collection<int, TRelatedModel>|TRelatedModel
|
||||
*/
|
||||
public function findOrNew($id, $columns = ['*']);
|
||||
|
||||
/**
|
||||
* Get the first related model record matching the attributes or instantiate it.
|
||||
*
|
||||
* @param array<string, mixed> $attributes
|
||||
* @return TRelatedModel
|
||||
*/
|
||||
public function firstOrNew(array $attributes);
|
||||
|
||||
/**
|
||||
* Get the first related record matching the attributes or create it.
|
||||
*
|
||||
* @param array<string, mixed> $attributes
|
||||
* @param array<mixed> $joining
|
||||
* @param bool $touch
|
||||
* @return TRelatedModel
|
||||
*/
|
||||
public function firstOrCreate(array $attributes, array $joining = [], $touch = true);
|
||||
|
||||
/**
|
||||
* Create or update a related record matching the attributes, and fill it with values.
|
||||
*
|
||||
* @param array<string, mixed> $attributes
|
||||
* @param array<mixed> $values
|
||||
* @param array<mixed> $joining
|
||||
* @param bool $touch
|
||||
* @return TRelatedModel
|
||||
*/
|
||||
public function updateOrCreate(array $attributes, array $values = [], array $joining = [], $touch = true);
|
||||
|
||||
/**
|
||||
* Find a related model by its primary key.
|
||||
*
|
||||
* @param mixed $id
|
||||
* @param array<int, mixed> $columns
|
||||
* @return TRelatedModel|\Illuminate\Database\Eloquent\Collection<TRelatedModel>|null
|
||||
*/
|
||||
public function find($id, $columns = ['*']);
|
||||
|
||||
/**
|
||||
* Find multiple related models by their primary keys.
|
||||
*
|
||||
* @param \Illuminate\Contracts\Support\Arrayable|int[] $ids
|
||||
* @param array<int, mixed> $columns
|
||||
* @return \Illuminate\Database\Eloquent\Collection<TRelatedModel>
|
||||
*/
|
||||
public function findMany($ids, $columns = ['*']);
|
||||
|
||||
/**
|
||||
* Find a related model by its primary key or throw an exception.
|
||||
*
|
||||
* @param mixed $id
|
||||
* @param array<int, mixed> $columns
|
||||
* @return TRelatedModel|\Illuminate\Database\Eloquent\Collection<TRelatedModel>
|
||||
*
|
||||
* @throws \Illuminate\Database\Eloquent\ModelNotFoundException
|
||||
*/
|
||||
public function findOrFail($id, $columns = ['*']);
|
||||
|
||||
/**
|
||||
* Execute the query and get the first result.
|
||||
*
|
||||
* @param array<int, mixed> $columns
|
||||
* @return TRelatedModel|null
|
||||
*/
|
||||
public function first($columns = ['*']);
|
||||
|
||||
/**
|
||||
* Execute the query and get the first result or throw an exception.
|
||||
*
|
||||
* @param array<int, mixed> $columns
|
||||
* @return TRelatedModel
|
||||
*
|
||||
* @throws \Illuminate\Database\Eloquent\ModelNotFoundException
|
||||
*/
|
||||
public function firstOrFail($columns = ['*']);
|
||||
|
||||
/**
|
||||
* Create a new instance of the related model.
|
||||
*
|
||||
* @param array<model-property<TRelatedModel>, mixed> $attributes
|
||||
* @param mixed[] $joining
|
||||
* @param bool $touch
|
||||
* @return TRelatedModel
|
||||
*/
|
||||
public function create(array $attributes = [], array $joining = [], $touch = true);
|
||||
|
||||
/**
|
||||
* Get the results of the relationship.
|
||||
*
|
||||
* @phpstan-return \Illuminate\Database\Eloquent\Collection<TRelatedModel>
|
||||
*/
|
||||
public function getResults();
|
||||
}
|
@@ -0,0 +1,454 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Database\Eloquent;
|
||||
|
||||
/**
|
||||
* @template TModelClass of Model
|
||||
* @property-read static<TModelClass> $orWhere
|
||||
*/
|
||||
class Builder
|
||||
{
|
||||
/**
|
||||
* Create and return an un-saved model instance.
|
||||
*
|
||||
* @phpstan-param array<model-property<TModelClass>, mixed> $attributes
|
||||
* @phpstan-return TModelClass
|
||||
*/
|
||||
public function make(array $attributes = []);
|
||||
|
||||
/**
|
||||
* Register a new global scope.
|
||||
*
|
||||
* @param string $identifier
|
||||
* @param \Illuminate\Database\Eloquent\Scope|\Closure $scope
|
||||
* @return static<TModelClass>
|
||||
*/
|
||||
public function withGlobalScope($identifier, $scope);
|
||||
|
||||
/**
|
||||
* Remove a registered global scope.
|
||||
*
|
||||
* @param \Illuminate\Database\Eloquent\Scope|string $scope
|
||||
* @return static<TModelClass>
|
||||
*/
|
||||
public function withoutGlobalScope($scope);
|
||||
|
||||
/** @phpstan-return TModelClass */
|
||||
public function getModel();
|
||||
|
||||
/**
|
||||
* @phpstan-param array<model-property<TModelClass>, mixed> $attributes
|
||||
* @phpstan-return TModelClass
|
||||
*/
|
||||
public function create(array $attributes = []);
|
||||
|
||||
/**
|
||||
* Create a collection of models from plain arrays.
|
||||
*
|
||||
* @param array<mixed> $items
|
||||
* @phpstan-return \Illuminate\Database\Eloquent\Collection<TModelClass>
|
||||
*/
|
||||
public function hydrate(array $items);
|
||||
|
||||
/**
|
||||
* Create a collection of models from a raw query.
|
||||
*
|
||||
* @param string $query
|
||||
* @param array<mixed> $bindings
|
||||
* @phpstan-return \Illuminate\Database\Eloquent\Collection<TModelClass>
|
||||
*/
|
||||
public function fromQuery($query, $bindings = []);
|
||||
|
||||
/**
|
||||
* Find a model by its primary key.
|
||||
*
|
||||
* @param mixed $id
|
||||
* @param array<int, (model-property<TModelClass>|'*')>|model-property<TModelClass>|'*' $columns
|
||||
* @phpstan-return TModelClass|\Illuminate\Database\Eloquent\Collection<TModelClass>|null
|
||||
*/
|
||||
public function find($id, $columns = ['*']);
|
||||
|
||||
/**
|
||||
* Find multiple models by their primary keys.
|
||||
*
|
||||
* @param \Illuminate\Contracts\Support\Arrayable|array<mixed> $ids
|
||||
* @param array<int, (model-property<TModelClass>|'*')>|model-property<TModelClass>|'*' $columns
|
||||
* @phpstan-return \Illuminate\Database\Eloquent\Collection<TModelClass>
|
||||
*/
|
||||
public function findMany($ids, $columns = ['*']);
|
||||
|
||||
/**
|
||||
* Find a model by its primary key or throw an exception.
|
||||
*
|
||||
* @param mixed $id
|
||||
* @param array<int, (model-property<TModelClass>|'*')>|model-property<TModelClass>|'*' $columns
|
||||
* @phpstan-return TModelClass|\Illuminate\Database\Eloquent\Collection<TModelClass>
|
||||
*
|
||||
* @throws \Illuminate\Database\Eloquent\ModelNotFoundException
|
||||
*/
|
||||
public function findOrFail($id, $columns = ['*']);
|
||||
|
||||
/**
|
||||
* Find a model by its primary key or return fresh model instance.
|
||||
*
|
||||
* @param mixed $id
|
||||
* @param array<int, (model-property<TModelClass>|'*')>|model-property<TModelClass>|'*' $columns
|
||||
* @phpstan-return TModelClass
|
||||
*/
|
||||
public function findOrNew($id, $columns = ['*']);
|
||||
|
||||
/**
|
||||
* Execute the query and get the first result.
|
||||
*
|
||||
* @param array<model-property<TModelClass>|int, mixed>|string $columns
|
||||
* @return TModelClass|null
|
||||
*/
|
||||
public function first($columns = ['*']);
|
||||
|
||||
/**
|
||||
* Get the first record matching the attributes or instantiate it.
|
||||
*
|
||||
* @param array<model-property<TModelClass>, mixed> $attributes
|
||||
* @param array<model-property<TModelClass>, mixed> $values
|
||||
* @phpstan-return TModelClass
|
||||
*/
|
||||
public function firstOrNew(array $attributes = [], array $values = []);
|
||||
|
||||
/**
|
||||
* Get the first record matching the attributes or create it.
|
||||
*
|
||||
* @param array<model-property<TModelClass>, mixed> $attributes
|
||||
* @param array<model-property<TModelClass>, mixed> $values
|
||||
* @phpstan-return TModelClass
|
||||
*/
|
||||
public function firstOrCreate(array $attributes, array $values = []);
|
||||
|
||||
/**
|
||||
* Create or update a record matching the attributes, and fill it with values.
|
||||
*
|
||||
* @param array<model-property<TModelClass>, mixed> $attributes
|
||||
* @param array<model-property<TModelClass>, mixed> $values
|
||||
* @phpstan-return TModelClass
|
||||
*/
|
||||
public function updateOrCreate(array $attributes, array $values = []);
|
||||
|
||||
/**
|
||||
* @param array<model-property<TModelClass>, mixed> $attributes
|
||||
* @phpstan-return TModelClass
|
||||
*/
|
||||
public function forceCreate(array $attributes);
|
||||
|
||||
/**
|
||||
* @param array<model-property<TModelClass>, mixed> $values
|
||||
* @return int
|
||||
*/
|
||||
public function update(array $values);
|
||||
|
||||
/**
|
||||
* Execute the query and get the first result or throw an exception.
|
||||
*
|
||||
* @param array<int, (model-property<TModelClass>|'*')>|model-property<TModelClass>|'*' $columns
|
||||
* @phpstan-return TModelClass
|
||||
*
|
||||
* @throws \Illuminate\Database\Eloquent\ModelNotFoundException
|
||||
*/
|
||||
public function firstOrFail($columns = ['*']);
|
||||
|
||||
/**
|
||||
* Execute the query and get the first result if it's the sole matching record.
|
||||
*
|
||||
* @param array<int, (model-property<TModelClass>|'*')>|model-property<TModelClass>|'*' $columns
|
||||
* @phpstan-return TModelClass
|
||||
*/
|
||||
public function sole($columns = ['*']);
|
||||
|
||||
/**
|
||||
* Execute the query and get the first result or call a callback.
|
||||
*
|
||||
* @param \Closure|array<int, (model-property<TModelClass>|'*')> $columns
|
||||
* @param \Closure|null $callback
|
||||
* @phpstan-return TModelClass|mixed
|
||||
*/
|
||||
public function firstOr($columns = ['*'], \Closure $callback = null);
|
||||
|
||||
/**
|
||||
* Add a basic where clause to the query.
|
||||
*
|
||||
* @param \Closure|model-property<TModelClass>|array<model-property<TModelClass>|int, mixed>|\Illuminate\Database\Query\Expression $column
|
||||
* @param mixed $operator
|
||||
* @param mixed $value
|
||||
* @param string $boolean
|
||||
* @return static
|
||||
*/
|
||||
public function where($column, $operator = null, $value = null, $boolean = 'and');
|
||||
|
||||
/**
|
||||
* Add an "or where" clause to the query.
|
||||
*
|
||||
* @param \Closure|model-property<TModelClass>|array<model-property<TModelClass>|int, mixed>|\Illuminate\Database\Query\Expression $column
|
||||
* @param mixed $operator
|
||||
* @param mixed $value
|
||||
* @return static
|
||||
*/
|
||||
public function orWhere($column, $operator = null, $value = null);
|
||||
|
||||
/**
|
||||
* Add a relationship count / exists condition to the query.
|
||||
*
|
||||
* @template TRelatedModel of Model
|
||||
* @param \Illuminate\Database\Eloquent\Relations\Relation<TRelatedModel>|string $relation
|
||||
* @param string $operator
|
||||
* @param int $count
|
||||
* @param string $boolean
|
||||
* @param \Closure|null $callback
|
||||
* @return static
|
||||
*
|
||||
* @throws \RuntimeException
|
||||
*/
|
||||
public function has($relation, $operator = '>=', $count = 1, $boolean = 'and', \Closure $callback = null);
|
||||
|
||||
/**
|
||||
* Add a relationship count / exists condition to the query with an "or".
|
||||
*
|
||||
* @param string $relation
|
||||
* @param string $operator
|
||||
* @param int $count
|
||||
* @return static
|
||||
*/
|
||||
public function orHas($relation, $operator = '>=', $count = 1);
|
||||
|
||||
/**
|
||||
* Add a relationship count / exists condition to the query.
|
||||
*
|
||||
* @param string $relation
|
||||
* @param string $boolean
|
||||
* @param \Closure|null $callback
|
||||
* @return static
|
||||
*/
|
||||
public function doesntHave($relation, $boolean = 'and', \Closure $callback = null);
|
||||
|
||||
/**
|
||||
* Add a relationship count / exists condition to the query with an "or".
|
||||
*
|
||||
* @param string $relation
|
||||
* @return static
|
||||
*/
|
||||
public function orDoesntHave($relation);
|
||||
|
||||
/**
|
||||
* Add a relationship count / exists condition to the query with where clauses.
|
||||
*
|
||||
* @param string $relation
|
||||
* @param \Closure|null $callback
|
||||
* @param string $operator
|
||||
* @param int $count
|
||||
* @return static
|
||||
*/
|
||||
public function whereHas($relation, \Closure $callback = null, $operator = '>=', $count = 1);
|
||||
|
||||
/**
|
||||
* Add a relationship count / exists condition to the query with where clauses and an "or".
|
||||
*
|
||||
* @param string $relation
|
||||
* @param \Closure|null $callback
|
||||
* @param string $operator
|
||||
* @param int $count
|
||||
* @return static
|
||||
*/
|
||||
public function orWhereHas($relation, \Closure $callback = null, $operator = '>=', $count = 1);
|
||||
|
||||
/**
|
||||
* Add a polymorphic relationship count / exists condition to the query.
|
||||
*
|
||||
* @template TRelatedModel of Model
|
||||
* @template TChildModel of Model
|
||||
* @param \Illuminate\Database\Eloquent\Relations\MorphTo<TRelatedModel, TChildModel>|string $relation
|
||||
* @param string|array<string> $types
|
||||
* @param string $operator
|
||||
* @param int $count
|
||||
* @param string $boolean
|
||||
* @param \Closure|null $callback
|
||||
* @return static
|
||||
*/
|
||||
public function hasMorph($relation, $types, $operator = '>=', $count = 1, $boolean = 'and', \Closure $callback = null);
|
||||
|
||||
/**
|
||||
* Add a polymorphic relationship count / exists condition to the query with an "or".
|
||||
*
|
||||
* @template TRelatedModel of Model
|
||||
* @template TChildModel of Model
|
||||
* @param \Illuminate\Database\Eloquent\Relations\MorphTo<TRelatedModel, TChildModel>|string $relation
|
||||
* @param string|array<string> $types
|
||||
* @param string $operator
|
||||
* @param int $count
|
||||
* @return static
|
||||
*/
|
||||
public function orHasMorph($relation, $types, $operator = '>=', $count = 1);
|
||||
|
||||
/**
|
||||
* Add a polymorphic relationship count / exists condition to the query.
|
||||
*
|
||||
* @template TRelatedModel of Model
|
||||
* @template TChildModel of Model
|
||||
* @param \Illuminate\Database\Eloquent\Relations\MorphTo<TRelatedModel, TChildModel>|string $relation
|
||||
* @param string|array<string> $types
|
||||
* @param string $boolean
|
||||
* @param \Closure|null $callback
|
||||
* @return static
|
||||
*/
|
||||
public function doesntHaveMorph($relation, $types, $boolean = 'and', \Closure $callback = null);
|
||||
|
||||
/**
|
||||
* Add a polymorphic relationship count / exists condition to the query with an "or".
|
||||
*
|
||||
* @template TRelatedModel of Model
|
||||
* @template TChildModel of Model
|
||||
* @param \Illuminate\Database\Eloquent\Relations\MorphTo<TRelatedModel, TChildModel>|string $relation
|
||||
* @param string|array<string> $types
|
||||
* @return static
|
||||
*/
|
||||
public function orDoesntHaveMorph($relation, $types);
|
||||
|
||||
/**
|
||||
* Add a polymorphic relationship count / exists condition to the query with where clauses.
|
||||
*
|
||||
* @template TRelatedModel of Model
|
||||
* @template TChildModel of Model
|
||||
* @param \Illuminate\Database\Eloquent\Relations\MorphTo<TRelatedModel, TChildModel>|string $relation
|
||||
* @param string|array<string> $types
|
||||
* @param \Closure|null $callback
|
||||
* @param string $operator
|
||||
* @param int $count
|
||||
* @return static
|
||||
*/
|
||||
public function whereHasMorph($relation, $types, \Closure $callback = null, $operator = '>=', $count = 1);
|
||||
|
||||
/**
|
||||
* Add a polymorphic relationship count / exists condition to the query with where clauses and an "or".
|
||||
*
|
||||
* @template TRelatedModel of Model
|
||||
* @template TChildModel of Model
|
||||
* @param \Illuminate\Database\Eloquent\Relations\MorphTo<TRelatedModel, TChildModel>|string $relation
|
||||
* @param string|array<string> $types
|
||||
* @param \Closure|null $callback
|
||||
* @param string $operator
|
||||
* @param int $count
|
||||
* @return static
|
||||
*/
|
||||
public function orWhereHasMorph($relation, $types, \Closure $callback = null, $operator = '>=', $count = 1);
|
||||
|
||||
/**
|
||||
* Add a polymorphic relationship count / exists condition to the query with where clauses.
|
||||
*
|
||||
* @template TRelatedModel of Model
|
||||
* @template TChildModel of Model
|
||||
* @param \Illuminate\Database\Eloquent\Relations\MorphTo<TRelatedModel, TChildModel>|string $relation
|
||||
* @param string|array<string> $types
|
||||
* @param \Closure|null $callback
|
||||
* @return static
|
||||
*/
|
||||
public function whereDoesntHaveMorph($relation, $types, \Closure $callback = null);
|
||||
|
||||
/**
|
||||
* Add a polymorphic relationship count / exists condition to the query with where clauses and an "or".
|
||||
*
|
||||
* @template TRelatedModel of Model
|
||||
* @template TChildModel of Model
|
||||
* @param \Illuminate\Database\Eloquent\Relations\MorphTo<TRelatedModel, TChildModel>|string $relation
|
||||
* @param string|array<string> $types
|
||||
* @param \Closure|null $callback
|
||||
* @return static
|
||||
*/
|
||||
public function orWhereDoesntHaveMorph($relation, $types, \Closure $callback = null);
|
||||
|
||||
/**
|
||||
* Merge the where constraints from another query to the current query.
|
||||
*
|
||||
* @param \Illuminate\Database\Eloquent\Builder<TModelClass> $from
|
||||
* @return static
|
||||
*/
|
||||
public function mergeConstraintsFrom(\Illuminate\Database\Eloquent\Builder $from);
|
||||
|
||||
/**
|
||||
* Add a relationship count / exists condition to the query with where clauses and an "or".
|
||||
*
|
||||
* @param string $relation
|
||||
* @param \Closure|null $callback
|
||||
* @return static
|
||||
*/
|
||||
public function orWhereDoesntHave($relation, \Closure $callback = null);
|
||||
|
||||
/**
|
||||
* Add a relationship count / exists condition to the query with where clauses.
|
||||
*
|
||||
* @param string $relation
|
||||
* @param \Closure|null $callback
|
||||
* @return static
|
||||
*/
|
||||
public function whereDoesntHave($relation, \Closure $callback = null);
|
||||
|
||||
/**
|
||||
* Add a basic where clause to the query, and return the first result.
|
||||
*
|
||||
* @param \Closure|model-property<TModelClass>|array<model-property<TModelClass>|int, mixed>|\Illuminate\Database\Query\Expression $column
|
||||
* @param mixed $operator
|
||||
* @param mixed $value
|
||||
* @param string $boolean
|
||||
* @phpstan-return TModelClass|null
|
||||
*/
|
||||
public function firstWhere($column, $operator = null, $value = null, $boolean = 'and');
|
||||
|
||||
/**
|
||||
* Execute the query as a "select" statement.
|
||||
*
|
||||
* @param array<int, (model-property<TModelClass>|'*')>|model-property<TModelClass>|'*' $columns
|
||||
* @phpstan-return \Illuminate\Database\Eloquent\Collection<TModelClass>
|
||||
*/
|
||||
public function get($columns = ['*']);
|
||||
|
||||
/**
|
||||
* Get the hydrated models without eager loading.
|
||||
*
|
||||
* @param array<int, (model-property<TModelClass>|'*')>|model-property<TModelClass>|'*' $columns
|
||||
* @phpstan-return TModelClass[]
|
||||
*/
|
||||
public function getModels($columns = ['*']);
|
||||
|
||||
/**
|
||||
* Get a single column's value from the first result of a query.
|
||||
*
|
||||
* @param model-property<TModelClass>|\Illuminate\Database\Query\Expression $column
|
||||
* @return mixed
|
||||
*/
|
||||
public function value($column);
|
||||
|
||||
/**
|
||||
* Apply the callback's query changes if the given "value" is true.
|
||||
*
|
||||
* @param mixed $value
|
||||
* @param callable($this, mixed): (void|Builder<TModelClass>) $callback
|
||||
* @param callable($this, mixed): (null|Builder<TModelClass>)|null $default
|
||||
* @return mixed|$this
|
||||
*/
|
||||
public function when($value, $callback, $default = null);
|
||||
|
||||
/**
|
||||
* Apply the callback's query changes if the given "value" is false.
|
||||
*
|
||||
* @param mixed $value
|
||||
* @param callable($this, mixed): (void|Builder<TModelClass>) $callback
|
||||
* @param callable($this, mixed): (null|Builder<TModelClass>)|null $default
|
||||
* @return mixed|$this
|
||||
*/
|
||||
public function unless($value, $callback, $default = null);
|
||||
}
|
||||
|
||||
class Scope {}
|
||||
|
||||
/**
|
||||
* @method static \Illuminate\Database\Eloquent\Builder<static> withTrashed(bool $withTrashed = true)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder<static> onlyTrashed()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder<static> withoutTrashed()
|
||||
* @method static bool restore()
|
||||
*/
|
||||
trait SoftDeletes {}
|
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Database\Eloquent;
|
||||
|
||||
use Illuminate\Support\Traits\EnumeratesValues;
|
||||
|
||||
/**
|
||||
* @template TValue
|
||||
* @extends \Illuminate\Support\Collection<int, TValue>
|
||||
*/
|
||||
class Collection extends \Illuminate\Support\Collection
|
||||
{
|
||||
|
||||
/** @phpstan-use EnumeratesValues<TValue> */
|
||||
use EnumeratesValues;
|
||||
|
||||
/**
|
||||
* @param mixed $key
|
||||
* @param mixed $default
|
||||
* @phpstan-return TValue|null
|
||||
*/
|
||||
public function find($key, $default = null) {}
|
||||
|
||||
/**
|
||||
* @template TReturn
|
||||
* @param callable(TValue, int): TReturn $callable
|
||||
* @return static<TReturn>|\Illuminate\Support\Collection<int, TReturn>
|
||||
*/
|
||||
public function map($callable) {}
|
||||
|
||||
/**
|
||||
* @param callable(TValue, int): mixed $callback
|
||||
* @return \Illuminate\Support\Collection<mixed, mixed>
|
||||
*/
|
||||
public function flatMap(callable $callback) {}
|
||||
|
||||
/**
|
||||
* @template TReturn
|
||||
* @param callable(TValue ...$values): TReturn $callback
|
||||
* @return static<TReturn>|\Illuminate\Support\Collection<int, TReturn>
|
||||
*/
|
||||
public function mapSpread(callable $callback) {}
|
||||
}
|
81
php-packages/phpstan/stubs/Illuminate/Database/Factory.stub
Normal file
81
php-packages/phpstan/stubs/Illuminate/Database/Factory.stub
Normal file
@@ -0,0 +1,81 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Database\Eloquent\Factories;
|
||||
|
||||
/**
|
||||
* @template TModel of \Illuminate\Database\Eloquent\Model
|
||||
*/
|
||||
class Factory
|
||||
{
|
||||
/**
|
||||
* The name of the factory's corresponding model.
|
||||
*
|
||||
* @var class-string<TModel>
|
||||
*/
|
||||
protected $model;
|
||||
|
||||
/**
|
||||
* Get a new factory instance for the given attributes.
|
||||
*
|
||||
* @param callable|array<model-property<TModel>, mixed> $attributes
|
||||
* @return static
|
||||
*/
|
||||
public static function new($attributes = []) {}
|
||||
|
||||
/**
|
||||
* Create a single model and persist it to the database.
|
||||
*
|
||||
* @param array<model-property<TModel>, mixed> $attributes
|
||||
* @return TModel
|
||||
*/
|
||||
public function createOne($attributes = []) {}
|
||||
|
||||
/**
|
||||
* Create a collection of models and persist them to the database.
|
||||
*
|
||||
* @param iterable<callable|array<model-property<TModel>, mixed>> $records
|
||||
* @return \Illuminate\Database\Eloquent\Collection<TModel>
|
||||
*/
|
||||
public function createMany(iterable $records) {}
|
||||
|
||||
/**
|
||||
* Create a collection of models and persist them to the database.
|
||||
*
|
||||
* @param array<model-property<TModel>, mixed> $attributes
|
||||
* @param \Illuminate\Database\Eloquent\Model|null $parent
|
||||
* @return \Illuminate\Database\Eloquent\Collection<TModel>|TModel
|
||||
*/
|
||||
public function create($attributes = [], ?\Illuminate\Database\Eloquent\Model $parent = null) {}
|
||||
|
||||
/**
|
||||
* Make a single instance of the model.
|
||||
*
|
||||
* @param callable|array<model-property<TModel>, mixed> $attributes
|
||||
* @return TModel
|
||||
*/
|
||||
public function makeOne($attributes = []) {}
|
||||
|
||||
/**
|
||||
* Create a collection of models.
|
||||
*
|
||||
* @param array<model-property<TModel>, mixed> $attributes
|
||||
* @param \Illuminate\Database\Eloquent\Model|null $parent
|
||||
* @return \Illuminate\Database\Eloquent\Collection<TModel>|TModel
|
||||
*/
|
||||
public function make($attributes = [], ?\Illuminate\Database\Eloquent\Model $parent = null) {}
|
||||
|
||||
/**
|
||||
* Make an instance of the model with the given attributes.
|
||||
*
|
||||
* @param \Illuminate\Database\Eloquent\Model|null $parent
|
||||
* @return TModel
|
||||
*/
|
||||
protected function makeInstance(?\Illuminate\Database\Eloquent\Model $parent) {}
|
||||
|
||||
/**
|
||||
* Define the model's default state.
|
||||
*
|
||||
* @return array<model-property<TModel>, mixed>
|
||||
*/
|
||||
abstract public function definition();
|
||||
}
|
31
php-packages/phpstan/stubs/Illuminate/Database/Gate.stub
Normal file
31
php-packages/phpstan/stubs/Illuminate/Database/Gate.stub
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Contracts\Auth\Access
|
||||
{
|
||||
|
||||
interface Gate
|
||||
{
|
||||
/**
|
||||
* Get a guard instance for the given user.
|
||||
*
|
||||
* @param \Illuminate\Contracts\Auth\Authenticatable|mixed $user
|
||||
* @return \Illuminate\Contracts\Auth\Access\Gate
|
||||
*/
|
||||
public function forUser($user);
|
||||
}
|
||||
}
|
||||
|
||||
namespace Illuminate\Auth\Access
|
||||
{
|
||||
|
||||
class Gate implements \Illuminate\Contracts\Auth\Access\Gate
|
||||
{
|
||||
/**
|
||||
* Get a guard instance for the given user.
|
||||
*
|
||||
* @param \Illuminate\Contracts\Auth\Authenticatable|mixed $user
|
||||
* @return \Illuminate\Contracts\Auth\Access\Gate
|
||||
*/
|
||||
public function forUser($user);
|
||||
}
|
||||
}
|
17
php-packages/phpstan/stubs/Illuminate/Database/HasMany.stub
Normal file
17
php-packages/phpstan/stubs/Illuminate/Database/HasMany.stub
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Database\Eloquent\Relations;
|
||||
|
||||
/**
|
||||
* @template TRelatedModel of \Illuminate\Database\Eloquent\Model
|
||||
* @extends HasOneOrMany<TRelatedModel>
|
||||
*/
|
||||
class HasMany extends HasOneOrMany
|
||||
{
|
||||
/**
|
||||
* Get the results of the relationship.
|
||||
*
|
||||
* @phpstan-return \Illuminate\Database\Eloquent\Collection<TRelatedModel>
|
||||
*/
|
||||
public function getResults();
|
||||
}
|
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Database\Eloquent\Relations;
|
||||
|
||||
/**
|
||||
* @template TRelatedModel of \Illuminate\Database\Eloquent\Model
|
||||
* @extends Relation<TRelatedModel>
|
||||
*/
|
||||
class HasManyThrough extends Relation
|
||||
{
|
||||
/**
|
||||
* Get the results of the relationship.
|
||||
*
|
||||
* @phpstan-return \Illuminate\Database\Eloquent\Collection<TRelatedModel>
|
||||
*/
|
||||
public function getResults();
|
||||
}
|
17
php-packages/phpstan/stubs/Illuminate/Database/HasOne.stub
Normal file
17
php-packages/phpstan/stubs/Illuminate/Database/HasOne.stub
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Database\Eloquent\Relations;
|
||||
|
||||
/**
|
||||
* @template TRelatedModel of \Illuminate\Database\Eloquent\Model
|
||||
* @extends HasOneOrMany<TRelatedModel>
|
||||
*/
|
||||
class HasOne extends HasOneOrMany
|
||||
{
|
||||
/**
|
||||
* Get the results of the relationship.
|
||||
*
|
||||
* @phpstan-return ?TRelatedModel
|
||||
*/
|
||||
public function getResults();
|
||||
}
|
@@ -0,0 +1,86 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Database\Eloquent\Relations;
|
||||
|
||||
/**
|
||||
* @template TRelatedModel of \Illuminate\Database\Eloquent\Model
|
||||
* @extends Relation<TRelatedModel>
|
||||
*/
|
||||
abstract class HasOneOrMany extends Relation
|
||||
{
|
||||
/**
|
||||
* Create a new has one or many relationship instance.
|
||||
*
|
||||
* @param \Illuminate\Database\Eloquent\Builder<TRelatedModel> $query
|
||||
* @param TRelatedModel $parent
|
||||
* @param non-empty-string $foreignKey
|
||||
* @param non-empty-string $localKey
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(\Illuminate\Database\Eloquent\Builder $query, \Illuminate\Database\Eloquent\Model $parent, $foreignKey, $localKey);
|
||||
|
||||
/**
|
||||
* @param array<model-property<TRelatedModel>, mixed> $attributes
|
||||
* @phpstan-return TRelatedModel
|
||||
*/
|
||||
public function make(array $attributes = []);
|
||||
|
||||
/**
|
||||
* Find a model by its primary key or return new instance of the related model.
|
||||
*
|
||||
* @param mixed $id
|
||||
* @param array<int, mixed> $columns
|
||||
* @return \Illuminate\Support\Collection<int, TRelatedModel>|TRelatedModel
|
||||
*/
|
||||
public function findOrNew($id, $columns = ['*']);
|
||||
|
||||
/**
|
||||
* Get the first related model record matching the attributes or instantiate it.
|
||||
*
|
||||
* @param array<model-property<TRelatedModel>, mixed> $attributes
|
||||
* @param array<mixed, mixed> $values
|
||||
* @return TRelatedModel
|
||||
*/
|
||||
public function firstOrNew(array $attributes, array $values = []);
|
||||
|
||||
/**
|
||||
* Get the first related record matching the attributes or create it.
|
||||
*
|
||||
* @param array<model-property<TRelatedModel>, mixed> $attributes
|
||||
* @param array<mixed, mixed> $values
|
||||
* @return TRelatedModel
|
||||
*/
|
||||
public function firstOrCreate(array $attributes, array $values = []);
|
||||
|
||||
/**
|
||||
* Create or update a related record matching the attributes, and fill it with values.
|
||||
*
|
||||
* @param array<model-property<TRelatedModel>, mixed> $attributes
|
||||
* @param array<array-key, mixed> $values
|
||||
* @return TRelatedModel
|
||||
*/
|
||||
public function updateOrCreate(array $attributes, array $values = []);
|
||||
|
||||
/**
|
||||
* Attach a model instance to the parent model.
|
||||
*
|
||||
* @param \Illuminate\Database\Eloquent\Model $model
|
||||
* @return TRelatedModel|false
|
||||
*/
|
||||
public function save(\Illuminate\Database\Eloquent\Model $model);
|
||||
|
||||
/**
|
||||
* @phpstan-param array<model-property<TRelatedModel>, mixed> $attributes
|
||||
*
|
||||
* @phpstan-return TRelatedModel
|
||||
*/
|
||||
public function create(array $attributes = []);
|
||||
|
||||
/**
|
||||
* Create a Collection of new instances of the related model.
|
||||
*
|
||||
* @param iterable<mixed> $records
|
||||
* @return \Illuminate\Database\Eloquent\Collection<TRelatedModel>
|
||||
*/
|
||||
public function createMany(iterable $records);
|
||||
}
|
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Database\Eloquent\Relations;
|
||||
|
||||
/**
|
||||
* @template TRelatedModel of \Illuminate\Database\Eloquent\Model
|
||||
* @extends HasManyThrough<TRelatedModel>
|
||||
*/
|
||||
class HasOneThrough extends HasManyThrough
|
||||
{
|
||||
/**
|
||||
* @param array<model-property<TRelatedModel>, mixed> $attributes
|
||||
*
|
||||
* @phpstan-return TRelatedModel
|
||||
*/
|
||||
public function create(array $attributes = []);
|
||||
|
||||
/**
|
||||
* Get the results of the relationship.
|
||||
*
|
||||
* @phpstan-return \Illuminate\Database\Eloquent\Collection<TRelatedModel>
|
||||
*/
|
||||
public function getResults();
|
||||
}
|
28
php-packages/phpstan/stubs/Illuminate/Database/Model.stub
Normal file
28
php-packages/phpstan/stubs/Illuminate/Database/Model.stub
Normal file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Database\Eloquent;
|
||||
|
||||
/**
|
||||
* @implements \ArrayAccess<string, mixed>
|
||||
*/
|
||||
abstract class Model implements \JsonSerializable, \ArrayAccess
|
||||
{
|
||||
/**
|
||||
* Update the model in the database.
|
||||
*
|
||||
* @param array<model-property<static>, mixed> $attributes
|
||||
* @param array<int|string, mixed> $options
|
||||
* @return bool
|
||||
*/
|
||||
public function update(array $attributes = [], array $options = []);
|
||||
|
||||
/**
|
||||
* Begin querying a model with eager loading.
|
||||
*
|
||||
* @param non-empty-string|array<int|string, (\Closure)|string> $relations
|
||||
* @return \Illuminate\Database\Eloquent\Builder<static>
|
||||
*/
|
||||
public static function with($relations);
|
||||
}
|
||||
|
||||
class ModelNotFoundException extends \RuntimeException {}
|
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Database\Eloquent\Relations;
|
||||
|
||||
/**
|
||||
* @template TRelatedModel of \Illuminate\Database\Eloquent\Model
|
||||
* @extends MorphOneOrMany<TRelatedModel>
|
||||
*/
|
||||
class MorphMany extends MorphOneOrMany
|
||||
{
|
||||
/**
|
||||
* @param array<model-property<TRelatedModel>, mixed> $attributes
|
||||
*
|
||||
* @phpstan-return TRelatedModel
|
||||
*/
|
||||
public function create(array $attributes = []);
|
||||
|
||||
/**
|
||||
* Get the results of the relationship.
|
||||
*
|
||||
* @phpstan-return \Illuminate\Database\Eloquent\Collection<TRelatedModel>
|
||||
*/
|
||||
public function getResults();
|
||||
}
|
17
php-packages/phpstan/stubs/Illuminate/Database/MorphOne.stub
Normal file
17
php-packages/phpstan/stubs/Illuminate/Database/MorphOne.stub
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Database\Eloquent\Relations;
|
||||
|
||||
/**
|
||||
* @template TRelatedModel of \Illuminate\Database\Eloquent\Model
|
||||
* @extends MorphOneOrMany<TRelatedModel>
|
||||
*/
|
||||
class MorphOne extends MorphOneOrMany
|
||||
{
|
||||
/**
|
||||
* Get the results of the relationship.
|
||||
*
|
||||
* @phpstan-return ?TRelatedModel
|
||||
*/
|
||||
public function getResults();
|
||||
}
|
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Database\Eloquent\Relations;
|
||||
|
||||
/**
|
||||
* @template TRelatedModel of \Illuminate\Database\Eloquent\Model
|
||||
* @extends HasOneOrMany<TRelatedModel>
|
||||
*/
|
||||
abstract class MorphOneOrMany extends HasOneOrMany
|
||||
{
|
||||
/**
|
||||
* @param array<model-property<TRelatedModel>, mixed> $attributes
|
||||
*
|
||||
* @phpstan-return TRelatedModel
|
||||
*/
|
||||
public function create(array $attributes = []);
|
||||
}
|
11
php-packages/phpstan/stubs/Illuminate/Database/MorphTo.stub
Normal file
11
php-packages/phpstan/stubs/Illuminate/Database/MorphTo.stub
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Database\Eloquent\Relations;
|
||||
|
||||
/**
|
||||
* @template TRelatedModel of \Illuminate\Database\Eloquent\Model
|
||||
* @template TChildModel of \Illuminate\Database\Eloquent\Model
|
||||
* @extends BelongsTo<TRelatedModel, TChildModel>
|
||||
*/
|
||||
class MorphTo extends BelongsTo
|
||||
{}
|
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Database\Eloquent\Relations;
|
||||
|
||||
/**
|
||||
* @template TRelatedModel of \Illuminate\Database\Eloquent\Model
|
||||
* @extends BelongsToMany<TRelatedModel>
|
||||
*/
|
||||
class MorphToMany extends BelongsToMany
|
||||
{
|
||||
}
|
1440
php-packages/phpstan/stubs/Illuminate/Database/QueryBuilder.stub
Normal file
1440
php-packages/phpstan/stubs/Illuminate/Database/QueryBuilder.stub
Normal file
File diff suppressed because it is too large
Load Diff
24
php-packages/phpstan/stubs/Illuminate/Database/Relation.stub
Normal file
24
php-packages/phpstan/stubs/Illuminate/Database/Relation.stub
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Database\Eloquent\Relations;
|
||||
|
||||
/**
|
||||
* @template TRelatedModel of \Illuminate\Database\Eloquent\Model
|
||||
*/
|
||||
class Relation
|
||||
{
|
||||
/**
|
||||
* Execute the query as a "select" statement.
|
||||
*
|
||||
* @param array<int, string> $columns
|
||||
* @phpstan-return \Illuminate\Database\Eloquent\Collection<TRelatedModel>
|
||||
*/
|
||||
public function get($columns = ['*']);
|
||||
|
||||
|
||||
/**
|
||||
* @param array<model-property<TRelatedModel>, mixed> $attributes
|
||||
* @phpstan-return TRelatedModel
|
||||
*/
|
||||
public function make(array $attributes = []);
|
||||
}
|
Reference in New Issue
Block a user