From c618b193599eb4666db88f0ecdc1a6ca4e131c04 Mon Sep 17 00:00:00 2001 From: Takayasu Oyama Date: Fri, 2 May 2025 16:16:05 +0900 Subject: [PATCH 01/22] =?UTF-8?q?[12.x]=20add=20generics=20to=20QueryBuild?= =?UTF-8?q?er=E2=80=99s=20column=20related=20methods?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Database/Concerns/BuildsQueries.php | 8 ++-- src/Illuminate/Database/Query/Builder.php | 37 ++++++++++--------- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/src/Illuminate/Database/Concerns/BuildsQueries.php b/src/Illuminate/Database/Concerns/BuildsQueries.php index f78e13b2d500..4651c9ea6fd8 100644 --- a/src/Illuminate/Database/Concerns/BuildsQueries.php +++ b/src/Illuminate/Database/Concerns/BuildsQueries.php @@ -358,7 +358,7 @@ protected function orderedLazyById($chunkSize = 1000, $column = null, $alias = n /** * Execute the query and get the first result. * - * @param array|string $columns + * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns * @return TValue|null */ public function first($columns = ['*']) @@ -369,7 +369,7 @@ public function first($columns = ['*']) /** * Execute the query and get the first result or throw an exception. * - * @param array|string $columns + * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns * @param string|null $message * @return TValue * @@ -387,7 +387,7 @@ public function firstOrFail($columns = ['*'], $message = null) /** * Execute the query and get the first result if it's the sole matching record. * - * @param array|string $columns + * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns * @return TValue * * @throws \Illuminate\Database\RecordsNotFoundException @@ -414,7 +414,7 @@ public function sole($columns = ['*']) * Paginate the given query using a cursor paginator. * * @param int $perPage - * @param array|string $columns + * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns * @param string $cursorName * @param \Illuminate\Pagination\Cursor|string|null $cursor * @return \Illuminate\Contracts\Pagination\CursorPaginator diff --git a/src/Illuminate/Database/Query/Builder.php b/src/Illuminate/Database/Query/Builder.php index 93fb2799f648..4dd97d628137 100755 --- a/src/Illuminate/Database/Query/Builder.php +++ b/src/Illuminate/Database/Query/Builder.php @@ -100,7 +100,7 @@ class Builder implements BuilderContract /** * The columns that should be returned. * - * @var array|null + * @var array|null */ public $columns; @@ -278,7 +278,7 @@ public function __construct( /** * Set the columns to be selected. * - * @param array|mixed $columns + * @param array|mixed $columns * @return $this */ public function select($columns = ['*']) @@ -432,7 +432,7 @@ protected function prependDatabaseNameIfCrossDatabaseQuery($query) /** * Add a new select column to the query. * - * @param array|mixed $column + * @param array|mixed $column * @return $this */ public function addSelect($column) @@ -3019,7 +3019,7 @@ public function toRawSql() * Execute a query for a single record by ID. * * @param int|string $id - * @param array|string $columns + * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns * @return object|null */ public function find($id, $columns = ['*']) @@ -3096,7 +3096,7 @@ public function soleValue($column) /** * Execute the query as a "select" statement. * - * @param array|string $columns + * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns * @return \Illuminate\Support\Collection */ public function get($columns = ['*']) @@ -3113,7 +3113,7 @@ public function get($columns = ['*']) /** * Run the query as a "select" statement against the connection. * - * @return array + * @return array */ protected function runSelect() { @@ -3125,8 +3125,8 @@ protected function runSelect() /** * Remove the group limit keys from the results in the collection. * - * @param \Illuminate\Support\Collection $items - * @return \Illuminate\Support\Collection + * @param \Illuminate\Support\Collection $items + * @return \Illuminate\Support\Collection */ protected function withoutGroupLimitKeys($items) { @@ -3152,7 +3152,7 @@ protected function withoutGroupLimitKeys($items) * Paginate the given query into a simple paginator. * * @param int|\Closure $perPage - * @param array|string $columns + * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns * @param string $pageName * @param int|null $page * @param \Closure|int|null $total @@ -3180,7 +3180,7 @@ public function paginate($perPage = 15, $columns = ['*'], $pageName = 'page', $p * This is more efficient on larger data-sets, etc. * * @param int $perPage - * @param array|string $columns + * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns * @param string $pageName * @param int|null $page * @return \Illuminate\Contracts\Pagination\Paginator @@ -3203,7 +3203,7 @@ public function simplePaginate($perPage = 15, $columns = ['*'], $pageName = 'pag * This is more efficient on larger data-sets, etc. * * @param int|null $perPage - * @param array|string $columns + * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns * @param string $cursorName * @param \Illuminate\Pagination\Cursor|string|null $cursor * @return \Illuminate\Contracts\Pagination\CursorPaginator @@ -3250,7 +3250,7 @@ protected function ensureOrderForCursorPagination($shouldReverse = false) /** * Get the count of the total records for the paginator. * - * @param array $columns + * @param array $columns * @return int */ public function getCountForPagination($columns = ['*']) @@ -3272,8 +3272,8 @@ public function getCountForPagination($columns = ['*']) /** * Run a pagination count query. * - * @param array $columns - * @return array + * @param array $columns + * @return array */ protected function runPaginationCountQuery($columns = ['*']) { @@ -3313,7 +3313,8 @@ protected function cloneForPaginationCount() /** * Remove the column aliases since they will break count queries. * - * @return array + * @param array $columns + * @return array */ protected function withoutSelectAliases(array $columns) { @@ -3677,8 +3678,8 @@ protected function setAggregate($function, $columns) * * After running the callback, the columns are reset to the original value. * - * @param array $columns - * @param callable $callback + * @param array $columns + * @param callable(): mixed $callback * @return mixed */ protected function onceWithColumns($columns, $callback) @@ -4081,7 +4082,7 @@ protected function forSubQuery() /** * Get all of the query builder's columns in a text-only array with all expressions evaluated. * - * @return array + * @return list */ public function getColumns() { From f2658003289762c2beee763eccc8403882811621 Mon Sep 17 00:00:00 2001 From: Takayasu Oyama Date: Wed, 7 May 2025 16:33:31 +0900 Subject: [PATCH 02/22] fix styling --- src/Illuminate/Database/Query/Builder.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Illuminate/Database/Query/Builder.php b/src/Illuminate/Database/Query/Builder.php index 4dd97d628137..94971369b288 100755 --- a/src/Illuminate/Database/Query/Builder.php +++ b/src/Illuminate/Database/Query/Builder.php @@ -3019,7 +3019,7 @@ public function toRawSql() * Execute a query for a single record by ID. * * @param int|string $id - * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns + * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns * @return object|null */ public function find($id, $columns = ['*']) @@ -3152,7 +3152,7 @@ protected function withoutGroupLimitKeys($items) * Paginate the given query into a simple paginator. * * @param int|\Closure $perPage - * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns + * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns * @param string $pageName * @param int|null $page * @param \Closure|int|null $total @@ -3180,7 +3180,7 @@ public function paginate($perPage = 15, $columns = ['*'], $pageName = 'page', $p * This is more efficient on larger data-sets, etc. * * @param int $perPage - * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns + * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns * @param string $pageName * @param int|null $page * @return \Illuminate\Contracts\Pagination\Paginator @@ -3203,7 +3203,7 @@ public function simplePaginate($perPage = 15, $columns = ['*'], $pageName = 'pag * This is more efficient on larger data-sets, etc. * * @param int|null $perPage - * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns + * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns * @param string $cursorName * @param \Illuminate\Pagination\Cursor|string|null $cursor * @return \Illuminate\Contracts\Pagination\CursorPaginator @@ -3250,7 +3250,7 @@ protected function ensureOrderForCursorPagination($shouldReverse = false) /** * Get the count of the total records for the paginator. * - * @param array $columns + * @param array $columns * @return int */ public function getCountForPagination($columns = ['*']) @@ -3272,7 +3272,7 @@ public function getCountForPagination($columns = ['*']) /** * Run a pagination count query. * - * @param array $columns + * @param array $columns * @return array */ protected function runPaginationCountQuery($columns = ['*']) From b8ccc2fd1018b1b49e66c18bd06f7ff190e3fcbe Mon Sep 17 00:00:00 2001 From: Takayasu Oyama Date: Wed, 7 May 2025 16:56:06 +0900 Subject: [PATCH 03/22] more detailed types --- src/Illuminate/Database/Query/Builder.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Illuminate/Database/Query/Builder.php b/src/Illuminate/Database/Query/Builder.php index 94971369b288..288e57d86fa4 100755 --- a/src/Illuminate/Database/Query/Builder.php +++ b/src/Illuminate/Database/Query/Builder.php @@ -278,7 +278,7 @@ public function __construct( /** * Set the columns to be selected. * - * @param array|mixed $columns + * @param string|\Illuminate\Contracts\Database\Query\Expression|self|\Illuminate\Database\Eloquent\Builder<\Illuminate\Database\Eloquent\Model>|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed|array|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed> $columns * @return $this */ public function select($columns = ['*']) @@ -302,7 +302,7 @@ public function select($columns = ['*']) /** * Add a subselect expression to the query. * - * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query + * @param string|\Illuminate\Contracts\Database\Query\Expression|self|\Illuminate\Database\Eloquent\Builder<\Illuminate\Database\Eloquent\Model>|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed $query * @param string $as * @return $this * @@ -337,7 +337,7 @@ public function selectRaw($expression, array $bindings = []) /** * Makes "from" fetch from a subquery. * - * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query + * @param string|\Illuminate\Contracts\Database\Query\Expression|self|\Illuminate\Database\Eloquent\Builder<\Illuminate\Database\Eloquent\Model>|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed $query * @param string $as * @return $this * @@ -369,8 +369,8 @@ public function fromRaw($expression, $bindings = []) /** * Creates a subquery and parse it. * - * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query - * @return array + * @param string|\Illuminate\Contracts\Database\Query\Expression|self|\Illuminate\Database\Eloquent\Builder<\Illuminate\Database\Eloquent\Model>|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed $query + * @return array{0: string, 1: list} */ protected function createSub($query) { @@ -390,7 +390,7 @@ protected function createSub($query) * Parse the subquery into SQL and bindings. * * @param mixed $query - * @return array + * @return array{0: string, 1: list} * * @throws \InvalidArgumentException */ From bf4f20b9fb8ccbbad300fb964a088e06c521c40e Mon Sep 17 00:00:00 2001 From: Takayasu Oyama Date: Wed, 7 May 2025 17:09:50 +0900 Subject: [PATCH 04/22] narrow types --- src/Illuminate/Database/Query/Builder.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Illuminate/Database/Query/Builder.php b/src/Illuminate/Database/Query/Builder.php index 288e57d86fa4..0b25f2d6dfef 100755 --- a/src/Illuminate/Database/Query/Builder.php +++ b/src/Illuminate/Database/Query/Builder.php @@ -369,7 +369,7 @@ public function fromRaw($expression, $bindings = []) /** * Creates a subquery and parse it. * - * @param string|\Illuminate\Contracts\Database\Query\Expression|self|\Illuminate\Database\Eloquent\Builder<\Illuminate\Database\Eloquent\Model>|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed $query + * @param string|self|\Illuminate\Database\Eloquent\Builder<\Illuminate\Database\Eloquent\Model>|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed $query * @return array{0: string, 1: list} */ protected function createSub($query) @@ -389,7 +389,7 @@ protected function createSub($query) /** * Parse the subquery into SQL and bindings. * - * @param mixed $query + * @param string|self|\Illuminate\Database\Eloquent\Builder<\Illuminate\Database\Eloquent\Model>|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed> $query * @return array{0: string, 1: list} * * @throws \InvalidArgumentException From 29fccc79f08b0930a97da517788a76d23b180088 Mon Sep 17 00:00:00 2001 From: Takayasu Oyama Date: Wed, 7 May 2025 17:12:48 +0900 Subject: [PATCH 05/22] more narrowing --- src/Illuminate/Database/Query/Builder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Illuminate/Database/Query/Builder.php b/src/Illuminate/Database/Query/Builder.php index 0b25f2d6dfef..2860018ee054 100755 --- a/src/Illuminate/Database/Query/Builder.php +++ b/src/Illuminate/Database/Query/Builder.php @@ -432,7 +432,7 @@ protected function prependDatabaseNameIfCrossDatabaseQuery($query) /** * Add a new select column to the query. * - * @param array|mixed $column + * @param string|\Illuminate\Contracts\Database\Query\Expression|self|\Illuminate\Database\Eloquent\Builder<\Illuminate\Database\Eloquent\Model>|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed|array|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed> $column * @return $this */ public function addSelect($column) From facd2d92686730dafe366168c6752b762e9bcbee Mon Sep 17 00:00:00 2001 From: Takayasu Oyama Date: Wed, 7 May 2025 17:13:51 +0900 Subject: [PATCH 06/22] not at this time --- src/Illuminate/Database/Query/Builder.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Illuminate/Database/Query/Builder.php b/src/Illuminate/Database/Query/Builder.php index 2860018ee054..8a44992bbb48 100755 --- a/src/Illuminate/Database/Query/Builder.php +++ b/src/Illuminate/Database/Query/Builder.php @@ -3125,8 +3125,8 @@ protected function runSelect() /** * Remove the group limit keys from the results in the collection. * - * @param \Illuminate\Support\Collection $items - * @return \Illuminate\Support\Collection + * @param \Illuminate\Support\Collection $items + * @return \Illuminate\Support\Collection */ protected function withoutGroupLimitKeys($items) { From a46260f6a9d477e7b2b64f81a159e28f1a1fe147 Mon Sep 17 00:00:00 2001 From: Takayasu Oyama Date: Wed, 7 May 2025 17:21:19 +0900 Subject: [PATCH 07/22] fix test --- src/Illuminate/Database/Query/Builder.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Illuminate/Database/Query/Builder.php b/src/Illuminate/Database/Query/Builder.php index 8a44992bbb48..a1904a2a0936 100755 --- a/src/Illuminate/Database/Query/Builder.php +++ b/src/Illuminate/Database/Query/Builder.php @@ -278,7 +278,7 @@ public function __construct( /** * Set the columns to be selected. * - * @param string|\Illuminate\Contracts\Database\Query\Expression|self|\Illuminate\Database\Eloquent\Builder<\Illuminate\Database\Eloquent\Model>|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed|array|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed> $columns + * @param string|\Illuminate\Contracts\Database\Query\Expression|self|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed|array|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed> $columns * @return $this */ public function select($columns = ['*']) @@ -302,7 +302,7 @@ public function select($columns = ['*']) /** * Add a subselect expression to the query. * - * @param string|\Illuminate\Contracts\Database\Query\Expression|self|\Illuminate\Database\Eloquent\Builder<\Illuminate\Database\Eloquent\Model>|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed $query + * @param string|\Illuminate\Contracts\Database\Query\Expression|self|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed $query * @param string $as * @return $this * @@ -337,7 +337,7 @@ public function selectRaw($expression, array $bindings = []) /** * Makes "from" fetch from a subquery. * - * @param string|\Illuminate\Contracts\Database\Query\Expression|self|\Illuminate\Database\Eloquent\Builder<\Illuminate\Database\Eloquent\Model>|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed $query + * @param string|\Illuminate\Contracts\Database\Query\Expression|self|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed $query * @param string $as * @return $this * @@ -369,7 +369,7 @@ public function fromRaw($expression, $bindings = []) /** * Creates a subquery and parse it. * - * @param string|self|\Illuminate\Database\Eloquent\Builder<\Illuminate\Database\Eloquent\Model>|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed $query + * @param string|self|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed $query * @return array{0: string, 1: list} */ protected function createSub($query) @@ -389,7 +389,7 @@ protected function createSub($query) /** * Parse the subquery into SQL and bindings. * - * @param string|self|\Illuminate\Database\Eloquent\Builder<\Illuminate\Database\Eloquent\Model>|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed> $query + * @param string|self|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed> $query * @return array{0: string, 1: list} * * @throws \InvalidArgumentException @@ -432,7 +432,7 @@ protected function prependDatabaseNameIfCrossDatabaseQuery($query) /** * Add a new select column to the query. * - * @param string|\Illuminate\Contracts\Database\Query\Expression|self|\Illuminate\Database\Eloquent\Builder<\Illuminate\Database\Eloquent\Model>|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed|array|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed> $column + * @param string|\Illuminate\Contracts\Database\Query\Expression|self|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed|array|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed> $column * @return $this */ public function addSelect($column) From 3e2a3e65270250f059c52234b7c5df0bf68e6c56 Mon Sep 17 00:00:00 2001 From: Takayasu Oyama Date: Wed, 7 May 2025 17:40:33 +0900 Subject: [PATCH 08/22] use type alias --- src/Illuminate/Database/Query/Builder.php | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/Illuminate/Database/Query/Builder.php b/src/Illuminate/Database/Query/Builder.php index a1904a2a0936..b35609bcf8ff 100755 --- a/src/Illuminate/Database/Query/Builder.php +++ b/src/Illuminate/Database/Query/Builder.php @@ -32,6 +32,11 @@ use function Illuminate\Support\enum_value; +/** + * @phpstan-type ColumnTypes = string|\Illuminate\Contracts\Database\Query\Expression + * @phpstan-type SubQueryBuilderTypes = string|self|\Illuminate\Database\Eloquent\Builder<\Illuminate\Database\Eloquent\Model>|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed> + * @phpstan-type SubQueryTypes = string|SubQueryBuilderTypes|\Closure(\Illuminate\Database\Query\Builder): mixed + */ class Builder implements BuilderContract { /** @use \Illuminate\Database\Concerns\BuildsQueries */ @@ -92,7 +97,7 @@ class Builder implements BuilderContract * * @var array{ * function: string, - * columns: array<\Illuminate\Contracts\Database\Query\Expression|string> + * columns: array * }|null */ public $aggregate; @@ -100,7 +105,7 @@ class Builder implements BuilderContract /** * The columns that should be returned. * - * @var array|null + * @var array|null */ public $columns; @@ -278,7 +283,7 @@ public function __construct( /** * Set the columns to be selected. * - * @param string|\Illuminate\Contracts\Database\Query\Expression|self|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed|array|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed> $columns + * @param ColumnTypes|SubQueryTypes|array $column * @return $this */ public function select($columns = ['*']) @@ -302,7 +307,7 @@ public function select($columns = ['*']) /** * Add a subselect expression to the query. * - * @param string|\Illuminate\Contracts\Database\Query\Expression|self|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed $query + * @param SubQueryTypes $query * @param string $as * @return $this * @@ -337,7 +342,7 @@ public function selectRaw($expression, array $bindings = []) /** * Makes "from" fetch from a subquery. * - * @param string|\Illuminate\Contracts\Database\Query\Expression|self|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed $query + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query * @param string $as * @return $this * @@ -369,7 +374,7 @@ public function fromRaw($expression, $bindings = []) /** * Creates a subquery and parse it. * - * @param string|self|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed $query + * @param SubQueryTypes $query * @return array{0: string, 1: list} */ protected function createSub($query) @@ -389,7 +394,7 @@ protected function createSub($query) /** * Parse the subquery into SQL and bindings. * - * @param string|self|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed> $query + * @param string|SubQueryBuilderTypes $query * @return array{0: string, 1: list} * * @throws \InvalidArgumentException @@ -432,7 +437,7 @@ protected function prependDatabaseNameIfCrossDatabaseQuery($query) /** * Add a new select column to the query. * - * @param string|\Illuminate\Contracts\Database\Query\Expression|self|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed|array|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed>|\Closure(\Illuminate\Database\Query\Builder): mixed> $column + * @param ColumnTypes|SubQueryTypes|array $column * @return $this */ public function addSelect($column) @@ -3113,7 +3118,7 @@ public function get($columns = ['*']) /** * Run the query as a "select" statement against the connection. * - * @return array + * @return array */ protected function runSelect() { From f1dc7d4a97a70b7a3a6688307b55e2830d9ee2f9 Mon Sep 17 00:00:00 2001 From: Takayasu Oyama Date: Wed, 7 May 2025 17:44:07 +0900 Subject: [PATCH 09/22] more use of alias --- src/Illuminate/Database/Query/Builder.php | 24 +++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Illuminate/Database/Query/Builder.php b/src/Illuminate/Database/Query/Builder.php index b35609bcf8ff..45ff8b8000a6 100755 --- a/src/Illuminate/Database/Query/Builder.php +++ b/src/Illuminate/Database/Query/Builder.php @@ -3024,7 +3024,7 @@ public function toRawSql() * Execute a query for a single record by ID. * * @param int|string $id - * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns + * @param ColumnTypes|array $columns * @return object|null */ public function find($id, $columns = ['*']) @@ -3038,7 +3038,7 @@ public function find($id, $columns = ['*']) * @template TValue * * @param mixed $id - * @param (\Closure(): TValue)|list|string $columns + * @param (\Closure(): TValue)|ColumnTypes $columns * @param (\Closure(): TValue)|null $callback * @return object|TValue */ @@ -3101,7 +3101,7 @@ public function soleValue($column) /** * Execute the query as a "select" statement. * - * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns + * @param ColumnTypes|array $columns * @return \Illuminate\Support\Collection */ public function get($columns = ['*']) @@ -3157,7 +3157,7 @@ protected function withoutGroupLimitKeys($items) * Paginate the given query into a simple paginator. * * @param int|\Closure $perPage - * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns + * @param ColumnTypes|array $columns * @param string $pageName * @param int|null $page * @param \Closure|int|null $total @@ -3185,7 +3185,7 @@ public function paginate($perPage = 15, $columns = ['*'], $pageName = 'page', $p * This is more efficient on larger data-sets, etc. * * @param int $perPage - * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns + * @param ColumnTypes|array $columns * @param string $pageName * @param int|null $page * @return \Illuminate\Contracts\Pagination\Paginator @@ -3208,7 +3208,7 @@ public function simplePaginate($perPage = 15, $columns = ['*'], $pageName = 'pag * This is more efficient on larger data-sets, etc. * * @param int|null $perPage - * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns + * @param ColumnTypes|array $columns * @param string $cursorName * @param \Illuminate\Pagination\Cursor|string|null $cursor * @return \Illuminate\Contracts\Pagination\CursorPaginator @@ -3255,7 +3255,7 @@ protected function ensureOrderForCursorPagination($shouldReverse = false) /** * Get the count of the total records for the paginator. * - * @param array $columns + * @param array $columns * @return int */ public function getCountForPagination($columns = ['*']) @@ -3277,7 +3277,7 @@ public function getCountForPagination($columns = ['*']) /** * Run a pagination count query. * - * @param array $columns + * @param array $columns * @return array */ protected function runPaginationCountQuery($columns = ['*']) @@ -3318,8 +3318,8 @@ protected function cloneForPaginationCount() /** * Remove the column aliases since they will break count queries. * - * @param array $columns - * @return array + * @param array $columns + * @return array */ protected function withoutSelectAliases(array $columns) { @@ -3367,7 +3367,7 @@ protected function enforceOrderBy() /** * Get a collection instance containing the values of a given column. * - * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param ColumnTypes $column * @param string|null $key * @return \Illuminate\Support\Collection */ @@ -3683,7 +3683,7 @@ protected function setAggregate($function, $columns) * * After running the callback, the columns are reset to the original value. * - * @param array $columns + * @param array $columns * @param callable(): mixed $callback * @return mixed */ From e9e02b77cfb2bd834814685a6650e182d0149ec1 Mon Sep 17 00:00:00 2001 From: Takayasu Oyama Date: Wed, 7 May 2025 17:47:13 +0900 Subject: [PATCH 10/22] not now --- src/Illuminate/Database/Concerns/BuildsQueries.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Illuminate/Database/Concerns/BuildsQueries.php b/src/Illuminate/Database/Concerns/BuildsQueries.php index 4651c9ea6fd8..f78e13b2d500 100644 --- a/src/Illuminate/Database/Concerns/BuildsQueries.php +++ b/src/Illuminate/Database/Concerns/BuildsQueries.php @@ -358,7 +358,7 @@ protected function orderedLazyById($chunkSize = 1000, $column = null, $alias = n /** * Execute the query and get the first result. * - * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns + * @param array|string $columns * @return TValue|null */ public function first($columns = ['*']) @@ -369,7 +369,7 @@ public function first($columns = ['*']) /** * Execute the query and get the first result or throw an exception. * - * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns + * @param array|string $columns * @param string|null $message * @return TValue * @@ -387,7 +387,7 @@ public function firstOrFail($columns = ['*'], $message = null) /** * Execute the query and get the first result if it's the sole matching record. * - * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns + * @param array|string $columns * @return TValue * * @throws \Illuminate\Database\RecordsNotFoundException @@ -414,7 +414,7 @@ public function sole($columns = ['*']) * Paginate the given query using a cursor paginator. * * @param int $perPage - * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns + * @param array|string $columns * @param string $cursorName * @param \Illuminate\Pagination\Cursor|string|null $cursor * @return \Illuminate\Contracts\Pagination\CursorPaginator From 47e9fe0e2bd0ab5d5aceb984dd0c37068691aaaf Mon Sep 17 00:00:00 2001 From: Takayasu Oyama Date: Wed, 7 May 2025 17:48:16 +0900 Subject: [PATCH 11/22] fix styling --- src/Illuminate/Database/Query/Builder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Illuminate/Database/Query/Builder.php b/src/Illuminate/Database/Query/Builder.php index 45ff8b8000a6..7bc94bff0a6e 100755 --- a/src/Illuminate/Database/Query/Builder.php +++ b/src/Illuminate/Database/Query/Builder.php @@ -283,7 +283,7 @@ public function __construct( /** * Set the columns to be selected. * - * @param ColumnTypes|SubQueryTypes|array $column + * @param ColumnTypes|SubQueryTypes|array $column * @return $this */ public function select($columns = ['*']) From 05968561ab74b79396d04213e9273991f176ae39 Mon Sep 17 00:00:00 2001 From: Takayasu Oyama Date: Wed, 7 May 2025 17:48:56 +0900 Subject: [PATCH 12/22] use covariant --- src/Illuminate/Database/Query/Builder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Illuminate/Database/Query/Builder.php b/src/Illuminate/Database/Query/Builder.php index 7bc94bff0a6e..4a1c02c7b3ff 100755 --- a/src/Illuminate/Database/Query/Builder.php +++ b/src/Illuminate/Database/Query/Builder.php @@ -34,7 +34,7 @@ /** * @phpstan-type ColumnTypes = string|\Illuminate\Contracts\Database\Query\Expression - * @phpstan-type SubQueryBuilderTypes = string|self|\Illuminate\Database\Eloquent\Builder<\Illuminate\Database\Eloquent\Model>|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed> + * @phpstan-type SubQueryBuilderTypes = string|self|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed> * @phpstan-type SubQueryTypes = string|SubQueryBuilderTypes|\Closure(\Illuminate\Database\Query\Builder): mixed */ class Builder implements BuilderContract From 006e832da440b59d3f6a5be397e4056407a6ef8f Mon Sep 17 00:00:00 2001 From: Takayasu Oyama Date: Wed, 7 May 2025 17:50:30 +0900 Subject: [PATCH 13/22] fixed --- src/Illuminate/Database/Query/Builder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Illuminate/Database/Query/Builder.php b/src/Illuminate/Database/Query/Builder.php index 4a1c02c7b3ff..46881a8088c1 100755 --- a/src/Illuminate/Database/Query/Builder.php +++ b/src/Illuminate/Database/Query/Builder.php @@ -283,7 +283,7 @@ public function __construct( /** * Set the columns to be selected. * - * @param ColumnTypes|SubQueryTypes|array $column + * @param ColumnTypes|SubQueryTypes|array $column * @return $this */ public function select($columns = ['*']) From 02d17cfd0c82931fe09419746933f13ca64f5106 Mon Sep 17 00:00:00 2001 From: Takayasu Oyama Date: Wed, 7 May 2025 17:51:46 +0900 Subject: [PATCH 14/22] fix styling --- src/Illuminate/Database/Query/Builder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Illuminate/Database/Query/Builder.php b/src/Illuminate/Database/Query/Builder.php index 46881a8088c1..512f2661b11f 100755 --- a/src/Illuminate/Database/Query/Builder.php +++ b/src/Illuminate/Database/Query/Builder.php @@ -342,7 +342,7 @@ public function selectRaw($expression, array $bindings = []) /** * Makes "from" fetch from a subquery. * - * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query * @param string $as * @return $this * From a97506e178792aa3ee73c2356232db166984967c Mon Sep 17 00:00:00 2001 From: Takayasu Oyama Date: Wed, 7 May 2025 17:53:20 +0900 Subject: [PATCH 15/22] dont include string in SubQueryBuilderTypes --- src/Illuminate/Database/Query/Builder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Illuminate/Database/Query/Builder.php b/src/Illuminate/Database/Query/Builder.php index 512f2661b11f..8529f3fde036 100755 --- a/src/Illuminate/Database/Query/Builder.php +++ b/src/Illuminate/Database/Query/Builder.php @@ -34,7 +34,7 @@ /** * @phpstan-type ColumnTypes = string|\Illuminate\Contracts\Database\Query\Expression - * @phpstan-type SubQueryBuilderTypes = string|self|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed> + * @phpstan-type SubQueryBuilderTypes = self|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed> * @phpstan-type SubQueryTypes = string|SubQueryBuilderTypes|\Closure(\Illuminate\Database\Query\Builder): mixed */ class Builder implements BuilderContract From bba347c0461d3eb5ec755c8557cbf466ed0e1c33 Mon Sep 17 00:00:00 2001 From: Takayasu Oyama Date: Wed, 7 May 2025 18:01:51 +0900 Subject: [PATCH 16/22] reorder --- src/Illuminate/Database/Query/Builder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Illuminate/Database/Query/Builder.php b/src/Illuminate/Database/Query/Builder.php index 8529f3fde036..d1843eba346e 100755 --- a/src/Illuminate/Database/Query/Builder.php +++ b/src/Illuminate/Database/Query/Builder.php @@ -34,8 +34,8 @@ /** * @phpstan-type ColumnTypes = string|\Illuminate\Contracts\Database\Query\Expression - * @phpstan-type SubQueryBuilderTypes = self|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed> * @phpstan-type SubQueryTypes = string|SubQueryBuilderTypes|\Closure(\Illuminate\Database\Query\Builder): mixed + * @phpstan-type SubQueryBuilderTypes = self|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed> */ class Builder implements BuilderContract { From 2531a50e5c3de6f6c47f4f017cfa3105c528e365 Mon Sep 17 00:00:00 2001 From: Takayasu Oyama Date: Wed, 7 May 2025 18:30:15 +0900 Subject: [PATCH 17/22] add generics to callback --- src/Illuminate/Database/Query/Builder.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Illuminate/Database/Query/Builder.php b/src/Illuminate/Database/Query/Builder.php index d1843eba346e..a23c7fa8bdfc 100755 --- a/src/Illuminate/Database/Query/Builder.php +++ b/src/Illuminate/Database/Query/Builder.php @@ -3683,9 +3683,10 @@ protected function setAggregate($function, $columns) * * After running the callback, the columns are reset to the original value. * + * @template TResult * @param array $columns - * @param callable(): mixed $callback - * @return mixed + * @param callable(): TResult $callback + * @return TResult */ protected function onceWithColumns($columns, $callback) { From 65656bd8f9aebae41d5a18c855f45b2a20a69f7b Mon Sep 17 00:00:00 2001 From: Takayasu Oyama Date: Wed, 7 May 2025 19:26:19 +0900 Subject: [PATCH 18/22] fix styling --- src/Illuminate/Database/Query/Builder.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Illuminate/Database/Query/Builder.php b/src/Illuminate/Database/Query/Builder.php index a23c7fa8bdfc..a88650c831a3 100755 --- a/src/Illuminate/Database/Query/Builder.php +++ b/src/Illuminate/Database/Query/Builder.php @@ -3684,6 +3684,7 @@ protected function setAggregate($function, $columns) * After running the callback, the columns are reset to the original value. * * @template TResult + * * @param array $columns * @param callable(): TResult $callback * @return TResult From 438d6eb0c709f5b2427308743dd3b2588afa7ed6 Mon Sep 17 00:00:00 2001 From: Takayasu Oyama Date: Wed, 7 May 2025 21:14:01 +0900 Subject: [PATCH 19/22] remove type alias --- src/Illuminate/Database/Query/Builder.php | 25 +++++++++-------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/src/Illuminate/Database/Query/Builder.php b/src/Illuminate/Database/Query/Builder.php index a88650c831a3..66e99621ef67 100755 --- a/src/Illuminate/Database/Query/Builder.php +++ b/src/Illuminate/Database/Query/Builder.php @@ -32,11 +32,6 @@ use function Illuminate\Support\enum_value; -/** - * @phpstan-type ColumnTypes = string|\Illuminate\Contracts\Database\Query\Expression - * @phpstan-type SubQueryTypes = string|SubQueryBuilderTypes|\Closure(\Illuminate\Database\Query\Builder): mixed - * @phpstan-type SubQueryBuilderTypes = self|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Relations\Relation<\Illuminate\Database\Eloquent\Model, \Illuminate\Database\Eloquent\Model, mixed> - */ class Builder implements BuilderContract { /** @use \Illuminate\Database\Concerns\BuildsQueries */ @@ -97,7 +92,7 @@ class Builder implements BuilderContract * * @var array{ * function: string, - * columns: array + * columns: array<\Illuminate\Contracts\Database\Query\Expression|string> * }|null */ public $aggregate; @@ -105,7 +100,7 @@ class Builder implements BuilderContract /** * The columns that should be returned. * - * @var array|null + * @var array|null */ public $columns; @@ -283,7 +278,7 @@ public function __construct( /** * Set the columns to be selected. * - * @param ColumnTypes|SubQueryTypes|array $column + * @param mixed $column * @return $this */ public function select($columns = ['*']) @@ -307,7 +302,7 @@ public function select($columns = ['*']) /** * Add a subselect expression to the query. * - * @param SubQueryTypes $query + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query * @param string $as * @return $this * @@ -374,7 +369,7 @@ public function fromRaw($expression, $bindings = []) /** * Creates a subquery and parse it. * - * @param SubQueryTypes $query + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query * @return array{0: string, 1: list} */ protected function createSub($query) @@ -394,7 +389,7 @@ protected function createSub($query) /** * Parse the subquery into SQL and bindings. * - * @param string|SubQueryBuilderTypes $query + * @param mixed $query * @return array{0: string, 1: list} * * @throws \InvalidArgumentException @@ -437,7 +432,7 @@ protected function prependDatabaseNameIfCrossDatabaseQuery($query) /** * Add a new select column to the query. * - * @param ColumnTypes|SubQueryTypes|array $column + * @param mixed $column * @return $this */ public function addSelect($column) @@ -3024,7 +3019,7 @@ public function toRawSql() * Execute a query for a single record by ID. * * @param int|string $id - * @param ColumnTypes|array $columns + * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns * @return object|null */ public function find($id, $columns = ['*']) @@ -3038,7 +3033,7 @@ public function find($id, $columns = ['*']) * @template TValue * * @param mixed $id - * @param (\Closure(): TValue)|ColumnTypes $columns + * @param (\Closure(): TValue)|string|\Illuminate\Contracts\Database\Query\Expression|array $columns * @param (\Closure(): TValue)|null $callback * @return object|TValue */ @@ -3101,7 +3096,7 @@ public function soleValue($column) /** * Execute the query as a "select" statement. * - * @param ColumnTypes|array $columns + * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns * @return \Illuminate\Support\Collection */ public function get($columns = ['*']) From 8ec968e5cb62cbcd8eeb8f0043cb1c5463265300 Mon Sep 17 00:00:00 2001 From: Takayasu Oyama Date: Wed, 7 May 2025 21:14:41 +0900 Subject: [PATCH 20/22] fix singlular name --- src/Illuminate/Database/Query/Builder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Illuminate/Database/Query/Builder.php b/src/Illuminate/Database/Query/Builder.php index 66e99621ef67..164bee41bd76 100755 --- a/src/Illuminate/Database/Query/Builder.php +++ b/src/Illuminate/Database/Query/Builder.php @@ -278,7 +278,7 @@ public function __construct( /** * Set the columns to be selected. * - * @param mixed $column + * @param mixed $columns * @return $this */ public function select($columns = ['*']) From ff99daf6dc893ef4b456dc7f72efbfa00e9d5bcc Mon Sep 17 00:00:00 2001 From: Takayasu Oyama Date: Wed, 7 May 2025 21:16:21 +0900 Subject: [PATCH 21/22] replace all aliases --- src/Illuminate/Database/Query/Builder.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Illuminate/Database/Query/Builder.php b/src/Illuminate/Database/Query/Builder.php index 164bee41bd76..c6c669f8af75 100755 --- a/src/Illuminate/Database/Query/Builder.php +++ b/src/Illuminate/Database/Query/Builder.php @@ -3152,7 +3152,7 @@ protected function withoutGroupLimitKeys($items) * Paginate the given query into a simple paginator. * * @param int|\Closure $perPage - * @param ColumnTypes|array $columns + * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns * @param string $pageName * @param int|null $page * @param \Closure|int|null $total @@ -3180,7 +3180,7 @@ public function paginate($perPage = 15, $columns = ['*'], $pageName = 'page', $p * This is more efficient on larger data-sets, etc. * * @param int $perPage - * @param ColumnTypes|array $columns + * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns * @param string $pageName * @param int|null $page * @return \Illuminate\Contracts\Pagination\Paginator @@ -3203,7 +3203,7 @@ public function simplePaginate($perPage = 15, $columns = ['*'], $pageName = 'pag * This is more efficient on larger data-sets, etc. * * @param int|null $perPage - * @param ColumnTypes|array $columns + * @param string|\Illuminate\Contracts\Database\Query\Expression|array $columns * @param string $cursorName * @param \Illuminate\Pagination\Cursor|string|null $cursor * @return \Illuminate\Contracts\Pagination\CursorPaginator @@ -3250,7 +3250,7 @@ protected function ensureOrderForCursorPagination($shouldReverse = false) /** * Get the count of the total records for the paginator. * - * @param array $columns + * @param array $columns * @return int */ public function getCountForPagination($columns = ['*']) @@ -3272,7 +3272,7 @@ public function getCountForPagination($columns = ['*']) /** * Run a pagination count query. * - * @param array $columns + * @param array $columns * @return array */ protected function runPaginationCountQuery($columns = ['*']) @@ -3313,8 +3313,8 @@ protected function cloneForPaginationCount() /** * Remove the column aliases since they will break count queries. * - * @param array $columns - * @return array + * @param array $columns + * @return array */ protected function withoutSelectAliases(array $columns) { @@ -3362,7 +3362,7 @@ protected function enforceOrderBy() /** * Get a collection instance containing the values of a given column. * - * @param ColumnTypes $column + * @param \Illuminate\Contracts\Database\Query\Expression|string $column * @param string|null $key * @return \Illuminate\Support\Collection */ @@ -3680,7 +3680,7 @@ protected function setAggregate($function, $columns) * * @template TResult * - * @param array $columns + * @param array $columns * @param callable(): TResult $callback * @return TResult */ From a5a856d796cdb1e65197b06fe930401738c40519 Mon Sep 17 00:00:00 2001 From: Takayasu Oyama Date: Wed, 7 May 2025 21:20:08 +0900 Subject: [PATCH 22/22] revert --- src/Illuminate/Database/Query/Builder.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Illuminate/Database/Query/Builder.php b/src/Illuminate/Database/Query/Builder.php index c6c669f8af75..ed13026725ce 100755 --- a/src/Illuminate/Database/Query/Builder.php +++ b/src/Illuminate/Database/Query/Builder.php @@ -370,7 +370,7 @@ public function fromRaw($expression, $bindings = []) * Creates a subquery and parse it. * * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query - * @return array{0: string, 1: list} + * @return array */ protected function createSub($query) { @@ -390,7 +390,7 @@ protected function createSub($query) * Parse the subquery into SQL and bindings. * * @param mixed $query - * @return array{0: string, 1: list} + * @return array * * @throws \InvalidArgumentException */