Skip to content

Commit e248271

Browse files
Chore/support php84 (#170)
* Fixed implicit nullable php 8.4 deprecations * Fixed parameter type mismatch * Removed left over ray call * Suppressed BooleanArgumentFlag phpmd warning * Suppressed CyclomaticComplexity phpmd warning * Suppressed UnusedFormalParameter phpmd warning * Removed ray call * Added php 8.4 to the test matrix * Added support for testing transactions on multiple connections
1 parent 8b405eb commit e248271

File tree

13 files changed

+28
-20
lines changed

13 files changed

+28
-20
lines changed

.github/workflows/run-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
strategy:
1717
matrix:
1818
arangodb: ['3.11', '3.12']
19-
php: ['8.2', '8.3']
19+
php: ['8.2', '8.3', '8.4']
2020
laravel: ['^11.0']
2121
include:
2222
- laravel: '^11.0'

src/Eloquent/Builder.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ public function createOrFirst(array $attributes = [], array $values = [])
3333
try {
3434
return $this->withSavepointIfNeeded(fn() => $this->create(array_merge($attributes, $values)));
3535
} catch (UniqueConstraintViolationException $e) {
36-
ray($e);
3736
return $this->useWritePdo()->where($attributes)->first() ?? throw $e;
3837
}
3938
}

src/Eloquent/Concerns/QueriesAranguentRelationships.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ public function withAggregate($relations, $column, $function = null)
169169
$query = $relation->getRelationExistenceQuery(
170170
$relation->getRelated()->newQuery(),
171171
$this,
172-
new Expression($expression),
172+
[$expression],
173173
)->setBindings([], 'select');
174174

175175
$query->callScope($constraints);

src/Eloquent/Relations/Concerns/IsAranguentRelation.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
namespace LaravelFreelancerNL\Aranguent\Eloquent\Relations\Concerns;
66

77
use Illuminate\Database\Eloquent\Builder;
8-
use Illuminate\Database\Query\Expression;
98

109
trait IsAranguentRelation
1110
{
@@ -41,7 +40,6 @@ public function getRelationExistenceCountQuery(Builder $query, Builder $parentQu
4140
return $this->getRelationExistenceQuery(
4241
$query,
4342
$parentQuery,
44-
new Expression('*'),
4543
);
4644
}
4745
}

src/Query/Builder.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,9 +116,9 @@ class Builder extends IlluminateQueryBuilder
116116
*/
117117
public function __construct(
118118
IlluminateConnectionInterface $connection,
119-
IlluminateQueryGrammar $grammar = null,
120-
IlluminateProcessor $processor = null,
121-
AQB $aqb = null,
119+
?IlluminateQueryGrammar $grammar = null,
120+
?IlluminateProcessor $processor = null,
121+
?AQB $aqb = null,
122122
) {
123123
assert($connection instanceof IlluminateConnectionInterface);
124124
assert($processor instanceof IlluminateProcessor);

src/Query/Concerns/BuildsWheres.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -444,6 +444,8 @@ public function whereJsonLength($column, $operator, $value = null, $boolean = 'a
444444
* @param string $boolean
445445
* @param bool $not
446446
* @return $this
447+
*
448+
* @SuppressWarnings(PHPMD.BooleanArgumentFlag)
447449
*/
448450
public function whereLike($column, $value, $caseSensitive = false, $boolean = 'and', $not = false)
449451
{

src/Query/Concerns/CompilesColumns.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ protected function prepareColumns(IlluminateQueryBuilder $query, array $columns)
9191
/**
9292
* @throws Exception
9393
*/
94-
protected function normalizeColumn(IlluminateQueryBuilder $query, mixed $column, string $table = null): mixed
94+
protected function normalizeColumn(IlluminateQueryBuilder $query, mixed $column, ?string $table = null): mixed
9595
{
9696
assert($query instanceof Builder);
9797

@@ -137,7 +137,7 @@ protected function normalizeColumn(IlluminateQueryBuilder $query, mixed $column,
137137
* @return array<mixed>
138138
* @throws Exception
139139
*/
140-
protected function normalizeStringColumn(Builder $query, int|string $key, string $column, string $table = null): array
140+
protected function normalizeStringColumn(Builder $query, int|string $key, string $column, ?string $table = null): array
141141
{
142142
[$column, $alias] = $query->extractAlias($column, $key);
143143

@@ -158,7 +158,7 @@ protected function normalizeStringColumn(Builder $query, int|string $key, string
158158
* @param string|null $table
159159
* @return string
160160
*/
161-
protected function normalizeColumnReferences(IlluminateQueryBuilder $query, string $column, string $table = null): string
161+
protected function normalizeColumnReferences(IlluminateQueryBuilder $query, string $column, ?string $table = null): string
162162
{
163163
assert($query instanceof Builder);
164164

src/Query/Concerns/CompilesDataManipulations.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ trait CompilesDataManipulations
1616
* @param string|null $bindVar
1717
* @return string
1818
*/
19-
public function compileInsert(Builder|IlluminateQueryBuilder $query, array $values, string $bindVar = null)
19+
public function compileInsert(Builder|IlluminateQueryBuilder $query, array $values, ?string $bindVar = null)
2020
{
2121
$table = $this->prefixTable($query->from);
2222

@@ -41,7 +41,7 @@ public function compileInsert(Builder|IlluminateQueryBuilder $query, array $valu
4141
* @param string|null $bindVar
4242
* @return string
4343
*/
44-
public function compileInsertGetId(IlluminateQueryBuilder $query, $values, $sequence = '_key', string $bindVar = null)
44+
public function compileInsertGetId(IlluminateQueryBuilder $query, $values, $sequence = '_key', ?string $bindVar = null)
4545
{
4646
$table = $this->prefixTable($query->from);
4747

@@ -68,7 +68,7 @@ public function compileInsertGetId(IlluminateQueryBuilder $query, $values, $sequ
6868
* @param array<mixed> $values
6969
* @return string
7070
*/
71-
public function compileInsertOrIgnore(IlluminateQueryBuilder $query, array $values, string $bindVar = null)
71+
public function compileInsertOrIgnore(IlluminateQueryBuilder $query, array $values, ?string $bindVar = null)
7272
{
7373
$table = $this->prefixTable($query->from);
7474

src/Query/Concerns/HandlesAliases.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public function convertColumnId(array|string|Expression $column): array|string|E
4545
*
4646
* @throws Exception
4747
*/
48-
public function extractAlias(string $entity, int|string $key = null): array
48+
public function extractAlias(string $entity, int|null|string $key = null): array
4949
{
5050
$results = preg_split("/\sas\s/i", $entity);
5151

@@ -155,7 +155,7 @@ public function prefixAlias(string $target, string $value): string
155155
/**
156156
* @throws Exception
157157
*/
158-
public function registerColumnAlias(string $column, string $alias = null): bool
158+
public function registerColumnAlias(string $column, ?string $alias = null): bool
159159
{
160160
if (preg_match("/\sas\s/i", $column)) {
161161
[$column, $alias] = $this->extractAlias($column);
@@ -170,7 +170,10 @@ public function registerColumnAlias(string $column, string $alias = null): bool
170170
return false;
171171
}
172172

173-
public function registerTableAlias(string|Expression $table, string $alias = null): string
173+
/**
174+
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
175+
*/
176+
public function registerTableAlias(string|Expression $table, ?string $alias = null): string
174177
{
175178
if ($table instanceof Expression && $alias !== null) {
176179
$table = 'Expression' . spl_object_id($table);

src/Query/Concerns/HandlesBindings.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ protected function getLastBindVariable(string $type = 'where'): string
7878
* @param string|null $type
7979
* @return void
8080
*/
81-
public function importBindings($query, string $type = null): void
81+
public function importBindings($query, ?string $type = null): void
8282
{
8383
if ($type) {
8484
$this->bindings[$type] = array_merge($this->bindings[$type], $query->bindings[$type]);

src/Testing/Concerns/InteractsWithDatabase.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ trait InteractsWithDatabase
1616
* @param array<mixed>|object|string $value
1717
* @param string|null $connection
1818
* @return \Illuminate\Contracts\Database\Query\Expression
19+
*
20+
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
1921
*/
2022
public function castAsJson($value, $connection = null)
2123
{

src/Testing/DatabaseTransactions.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ public function beginDatabaseTransaction()
2222
{
2323
$database = $this->app->make('db');
2424

25-
$this->app->instance('db.transactions', $transactionsManager = new DatabaseTransactionsManager());
25+
$connections = $this->connectionsToTransact();
26+
27+
$this->app->instance('db.transactions', $transactionsManager = new DatabaseTransactionsManager($connections));
2628

2729
foreach ($this->connectionsToTransact() as $name) {
2830
$connection = $database->connection($name);

src/Testing/RefreshDatabase.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ public function beginDatabaseTransaction()
2222
{
2323
$database = $this->app->make('db');
2424

25-
$this->app->instance('db.transactions', $transactionsManager = new DatabaseTransactionsManager());
25+
$connections = $this->connectionsToTransact();
26+
27+
$this->app->instance('db.transactions', $transactionsManager = new DatabaseTransactionsManager($connections));
2628

2729
foreach ($this->connectionsToTransact() as $name) {
2830
$connection = $database->connection($name);

0 commit comments

Comments
 (0)