Skip to content

Commit 0c9cc11

Browse files
committed
improved phpDoc
1 parent d77f619 commit 0c9cc11

15 files changed

Lines changed: 107 additions & 16 deletions

src/Bridges/DatabaseTracy/ConnectionPanel.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ class ConnectionPanel implements Tracy\IBarPanel
2828
public float $performanceScale = 0.25;
2929
private float $totalTime = 0;
3030
private int $count = 0;
31+
32+
/** @var list<array{Connection, string, ?array<mixed>, list<array<string, mixed>>, ?float, ?int, ?string}> */
3133
private array $queries = [];
3234
private Tracy\BlueScreen $blueScreen;
3335

src/Database/Connection.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,7 @@ public function rollBack(): void
212212

213213
/**
214214
* Executes callback inside a transaction.
215+
* @param callable(static): mixed $callback
215216
*/
216217
public function transaction(callable $callback): mixed
217218
{
@@ -321,6 +322,7 @@ public function fetchField(#[Language('SQL')] string $sql, #[Language('GenericSQ
321322
/**
322323
* Shortcut for query()->fetchList()
323324
* @param literal-string $sql
325+
* @return ?list<mixed>
324326
*/
325327
public function fetchList(#[Language('SQL')] string $sql, #[Language('GenericSQL')] ...$params): ?array
326328
{
@@ -331,6 +333,7 @@ public function fetchList(#[Language('SQL')] string $sql, #[Language('GenericSQL
331333
/**
332334
* Shortcut for query()->fetchList()
333335
* @param literal-string $sql
336+
* @return ?list<mixed>
334337
*/
335338
public function fetchFields(#[Language('SQL')] string $sql, #[Language('GenericSQL')] ...$params): ?array
336339
{
@@ -341,6 +344,7 @@ public function fetchFields(#[Language('SQL')] string $sql, #[Language('GenericS
341344
/**
342345
* Shortcut for query()->fetchPairs()
343346
* @param literal-string $sql
347+
* @return array<mixed, mixed>
344348
*/
345349
public function fetchPairs(#[Language('SQL')] string $sql, #[Language('GenericSQL')] ...$params): array
346350
{
@@ -351,6 +355,7 @@ public function fetchPairs(#[Language('SQL')] string $sql, #[Language('GenericSQ
351355
/**
352356
* Shortcut for query()->fetchAll()
353357
* @param literal-string $sql
358+
* @return Row[]
354359
*/
355360
public function fetchAll(#[Language('SQL')] string $sql, #[Language('GenericSQL')] ...$params): array
356361
{

src/Database/Conventions.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ function getPrimary(string $table): string|array|null;
2727
* Example:
2828
* (author, book) returns [book, author_id]
2929
*
30-
* @return array|null [referenced table, referenced column]
30+
* @return ?array{string, string}
3131
* @throws AmbiguousReferenceKeyException
3232
*/
3333
function getHasManyReference(string $table, string $key): ?array;
@@ -38,7 +38,7 @@ function getHasManyReference(string $table, string $key): ?array;
3838
* (book, author) returns [author, author_id]
3939
* (book, translator) returns [author, translator_id]
4040
*
41-
* @return array|null [referenced table, referencing column]
41+
* @return ?array{string, string}
4242
*/
4343
function getBelongsToReference(string $table, string $key): ?array;
4444
}

src/Database/Driver.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ function isSupported(string $feature): bool;
4040

4141
/**
4242
* Initializes connection.
43+
* @param array<string, mixed> $options
4344
*/
4445
function initialize(Connection $connection, array $options): void;
4546

@@ -75,7 +76,7 @@ function getTables(): array;
7576

7677
/**
7778
* Returns metadata for all columns in a table.
78-
* @return list<array{name: string, table: string, nativetype: string, size: ?int, nullable: bool, default: mixed, autoincrement: bool, primary: bool, comment: ?string, vendor: array}>
79+
* @return list<array{name: string, table: string, nativetype: string, size: ?int, nullable: bool, default: mixed, autoincrement: bool, primary: bool, comment: ?string, vendor: array<string, mixed>}>
7980
*/
8081
function getColumns(string $table): array;
8182

src/Database/Explorer.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ public function rollBack(): void
5151
}
5252

5353

54+
/** @param callable(static): mixed $callback */
5455
public function transaction(callable $callback): mixed
5556
{
5657
return $this->connection->transaction(fn() => $callback($this));
@@ -108,6 +109,7 @@ public function getConventions(): Conventions
108109
}
109110

110111

112+
/** @param array<string, mixed> $data */
111113
public function createActiveRow(array $data, Table\Selection $selection): Table\ActiveRow
112114
{
113115
return new Table\ActiveRow($data, $selection);
@@ -161,6 +163,7 @@ public function fetchField(#[Language('SQL')] string $sql, #[Language('GenericSQ
161163
/**
162164
* Shortcut for query()->fetchList()
163165
* @param literal-string $sql
166+
* @return ?list<mixed>
164167
*/
165168
public function fetchList(#[Language('SQL')] string $sql, #[Language('GenericSQL')] ...$params): ?array
166169
{
@@ -171,6 +174,7 @@ public function fetchList(#[Language('SQL')] string $sql, #[Language('GenericSQL
171174
/**
172175
* Shortcut for query()->fetchList()
173176
* @param literal-string $sql
177+
* @return ?list<mixed>
174178
*/
175179
public function fetchFields(#[Language('SQL')] string $sql, #[Language('GenericSQL')] ...$params): ?array
176180
{
@@ -181,6 +185,7 @@ public function fetchFields(#[Language('SQL')] string $sql, #[Language('GenericS
181185
/**
182186
* Shortcut for query()->fetchPairs()
183187
* @param literal-string $sql
188+
* @return array<mixed, mixed>
184189
*/
185190
public function fetchPairs(#[Language('SQL')] string $sql, #[Language('GenericSQL')] ...$params): array
186191
{
@@ -191,6 +196,7 @@ public function fetchPairs(#[Language('SQL')] string $sql, #[Language('GenericSQ
191196
/**
192197
* Shortcut for query()->fetchAll()
193198
* @param literal-string $sql
199+
* @return Row[]
194200
*/
195201
public function fetchAll(#[Language('SQL')] string $sql, #[Language('GenericSQL')] ...$params): array
196202
{

src/Database/Helpers.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ public static function dumpSql(string $sql, ?array $params = null, ?Connection $
167167

168168
/**
169169
* Returns column types from result set.
170+
* @return array<string, string> column name => type
170171
*/
171172
public static function detectTypes(\PDOStatement $statement): array
172173
{
@@ -326,6 +327,8 @@ public static function initializeTracy(
326327

327328
/**
328329
* Converts rows to key-value pairs.
330+
* @param array<Row|Table\ActiveRow|array<string, mixed>> $rows
331+
* @return array<mixed, mixed>
329332
*/
330333
public static function toPairs(array $rows, string|int|\Closure|null $key, string|int|null $value): array
331334
{

src/Database/IStructure.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,13 @@ interface IStructure
3030

3131
/**
3232
* Returns tables list.
33+
* @return list<array{name: string, fullName?: string, view: bool}>
3334
*/
3435
function getTables(): array;
3536

3637
/**
3738
* Returns table columns list.
39+
* @return list<array{name: string, table: string, nativetype: string, size: ?int, nullable: bool, default: mixed, autoincrement: bool, primary: bool, vendor: array<string, mixed>}>
3840
*/
3941
function getColumns(string $table): array;
4042

@@ -57,12 +59,14 @@ function getPrimaryKeySequence(string $table): ?string;
5759
/**
5860
* Returns hasMany reference.
5961
* If a targetTable is not provided, returns references for all tables.
62+
* @return array<string, list<string>>|null table name => list of referencing columns
6063
*/
6164
function getHasManyReference(string $table): ?array;
6265

6366
/**
6467
* Returns belongsTo reference.
6568
* If a column is not provided, returns references for all columns.
69+
* @return ?array<string, string> column name => referenced table name
6670
*/
6771
function getBelongsToReference(string $table): ?array;
6872

src/Database/Reflection/ForeignKey.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ final class ForeignKey
1818
/** @internal */
1919
public function __construct(
2020
public readonly Table $foreignTable,
21-
/** @var Column[] */
21+
/** @var list<Column> */
2222
public readonly array $localColumns,
23-
/** @var Column[] */
23+
/** @var list<Column> */
2424
public readonly array $foreignColumns,
2525
public readonly ?string $name = null,
2626
) {

src/Database/ResultSet.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,15 @@ class ResultSet implements \Iterator, IRowContainer
3030
/** @var Row[] */
3131
private array $rows;
3232
private float $time;
33+
34+
/** @var array<string, string> column name => type */
3335
private array $types;
3436

3537

3638
public function __construct(
3739
private readonly Connection $connection,
3840
private readonly string $queryString,
41+
/** @var mixed[] */
3942
private readonly array $params,
4043
?callable $normalizer = null,
4144
) {
@@ -87,6 +90,7 @@ public function getQueryString(): string
8790
}
8891

8992

93+
/** @return mixed[] */
9094
public function getParameters(): array
9195
{
9296
return $this->params;
@@ -105,6 +109,7 @@ public function getRowCount(): ?int
105109
}
106110

107111

112+
/** @return array<string, string> */
108113
public function getColumnTypes(): array
109114
{
110115
$this->types ??= $this->connection->getDriver()->getColumnTypes($this->pdoStatement);
@@ -231,6 +236,7 @@ public function fetchField(): mixed
231236

232237
/**
233238
* Returns the next row as indexed array or null if there are no more rows.
239+
* @return ?list<mixed>
234240
*/
235241
public function fetchList(): ?array
236242
{
@@ -241,6 +247,7 @@ public function fetchList(): ?array
241247

242248
/**
243249
* Alias for fetchList().
250+
* @return ?list<mixed>
244251
*/
245252
public function fetchFields(): ?array
246253
{
@@ -252,6 +259,7 @@ public function fetchFields(): ?array
252259
* Returns all rows as associative array, where first argument specifies key column and second value column.
253260
* For duplicate keys, the last value is used. When using null as key, array is indexed from zero.
254261
* Alternatively accepts callback returning value or key-value pairs.
262+
* @return array<mixed, mixed>
255263
*/
256264
public function fetchPairs(string|int|\Closure|null $keyOrCallback = null, string|int|null $value = null): array
257265
{

src/Database/SqlLiteral.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class SqlLiteral
1717
{
1818
public function __construct(
1919
private readonly string $value,
20+
/** @var mixed[] */
2021
private readonly array $parameters = [],
2122
) {
2223
}
@@ -28,6 +29,7 @@ public function getSql(): string
2829
}
2930

3031

32+
/** @return mixed[] */
3133
public function getParameters(): array
3234
{
3335
return $this->parameters;

0 commit comments

Comments
 (0)