Skip to content

Commit

Permalink
Refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
staudenmeir committed Sep 30, 2024
1 parent 564131a commit 5fb33a3
Show file tree
Hide file tree
Showing 16 changed files with 64 additions and 26 deletions.
2 changes: 0 additions & 2 deletions phpstan.neon.dist
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
includes:
- ./vendor/larastan/larastan/extension.neon
parameters:
level: 5
paths:
Expand Down
3 changes: 2 additions & 1 deletion src/Eloquent/Relations/Ancestors.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@

/**
* @template TRelatedModel of \Illuminate\Database\Eloquent\Model
* @template TDeclaringModel of \Illuminate\Database\Eloquent\Model
*
* @extends HasMany<TRelatedModel>
* @extends \Illuminate\Database\Eloquent\Relations\HasMany<TRelatedModel, TDeclaringModel>
*/
class Ancestors extends HasMany implements ConcatenableRelation
{
Expand Down
3 changes: 2 additions & 1 deletion src/Eloquent/Relations/BelongsToManyOfDescendants.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@

/**
* @template TRelatedModel of \Illuminate\Database\Eloquent\Model
* @template TDeclaringModel of \Illuminate\Database\Eloquent\Model
*
* @extends BelongsToMany<TRelatedModel>
* @extends \Illuminate\Database\Eloquent\Relations\BelongsToMany<TRelatedModel, TDeclaringModel>
*/
class BelongsToManyOfDescendants extends BelongsToMany
{
Expand Down
3 changes: 2 additions & 1 deletion src/Eloquent/Relations/Bloodline.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@

/**
* @template TRelatedModel of \Illuminate\Database\Eloquent\Model
* @template TDeclaringModel of \Illuminate\Database\Eloquent\Model
*
* @extends Descendants<TRelatedModel>
* @extends \Staudenmeir\LaravelAdjacencyList\Eloquent\Relations\Descendants<TRelatedModel, TDeclaringModel>
*/
class Bloodline extends Descendants
{
Expand Down
20 changes: 16 additions & 4 deletions src/Eloquent/Relations/Descendants.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@

/**
* @template TRelatedModel of \Illuminate\Database\Eloquent\Model
* @template TDeclaringModel of \Illuminate\Database\Eloquent\Model
*
* @extends HasMany<TRelatedModel>
* @extends \Illuminate\Database\Eloquent\Relations\HasMany<TRelatedModel, TDeclaringModel>
*/
class Descendants extends HasMany implements ConcatenableRelation
{
Expand Down Expand Up @@ -115,7 +116,9 @@ public function getRelationExistenceQuery(Builder $query, Builder $parentQuery,
);
};

return $this->addExpression($constraint, $query->select($columns));
$query->select($columns);

return $this->addExpression($constraint, $query);
}

/** @inheritDoc */
Expand Down Expand Up @@ -143,10 +146,19 @@ public function getRelationExistenceQueryForSelfRelation(Builder $query, Builder
);
};

return $this->addExpression($constraint, $query->select($columns), $from);
$query->select($columns);

return $this->addExpression($constraint, $query, $from);
}

/** @inheritDoc */
/**
* Add a recursive expression to the query.
*
* @param callable $constraint
* @param \Illuminate\Database\Eloquent\Builder|null $query
* @param string|null $from
* @return \Illuminate\Database\Eloquent\Builder
*/
protected function addExpression(callable $constraint, ?Builder $query = null, $from = null)
{
$query = $query ?: $this->query;
Expand Down
11 changes: 8 additions & 3 deletions src/Eloquent/Relations/Graph/Ancestors.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@

/**
* @template TRelatedModel of \Illuminate\Database\Eloquent\Model
* @template TDeclaringModel of \Illuminate\Database\Eloquent\Model
*
* @extends BelongsToMany<TRelatedModel>
* @extends \Illuminate\Database\Eloquent\Relations\BelongsToMany<TRelatedModel, TDeclaringModel>
*/
class Ancestors extends BelongsToMany implements ConcatenableRelation
{
Expand Down Expand Up @@ -104,7 +105,9 @@ public function getRelationExistenceQuery(Builder $query, Builder $parentQuery,
);
};

return $this->addExpression($constraint, $query->select($columns));
$query->select($columns);

return $this->addExpression($constraint, $query);
}

/**
Expand Down Expand Up @@ -140,7 +143,9 @@ public function getRelationExistenceQueryForSelfRelation(
);
};

return $this->addExpression($constraint, $query->select($columns), $from);
$query->select($columns);

return $this->addExpression($constraint, $query, $from);
}

/**
Expand Down
11 changes: 8 additions & 3 deletions src/Eloquent/Relations/Graph/Descendants.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@

/**
* @template TRelatedModel of \Illuminate\Database\Eloquent\Model
* @template TDeclaringModel of \Illuminate\Database\Eloquent\Model
*
* @extends BelongsToMany<TRelatedModel>
* @extends \Illuminate\Database\Eloquent\Relations\BelongsToMany<TRelatedModel, TDeclaringModel>
*/
class Descendants extends BelongsToMany implements ConcatenableRelation
{
Expand Down Expand Up @@ -104,7 +105,9 @@ public function getRelationExistenceQuery(Builder $query, Builder $parentQuery,
);
};

return $this->addExpression($constraint, $query->select($columns));
$query->select($columns);

return $this->addExpression($constraint, $query);
}

/**
Expand Down Expand Up @@ -140,7 +143,9 @@ public function getRelationExistenceQueryForSelfRelation(
);
};

return $this->addExpression($constraint, $query->select($columns), $from);
$query->select($columns);

return $this->addExpression($constraint, $query, $from);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,10 +131,12 @@ protected function mergeExpressions(Builder $query, Builder $from): Builder
$fromQuery->expressions
);

return $query->addBinding(
$query->addBinding(
$fromQuery->getRawBindings()['expressions'],
'expressions'
);

return $query;
}

/**
Expand Down
3 changes: 2 additions & 1 deletion src/Eloquent/Relations/HasManyOfDescendants.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@

/**
* @template TRelatedModel of \Illuminate\Database\Eloquent\Model
* @template TDeclaringModel of \Illuminate\Database\Eloquent\Model
*
* @extends HasMany<TRelatedModel>
* @extends \Illuminate\Database\Eloquent\Relations\HasMany<TRelatedModel, TDeclaringModel>
*/
class HasManyOfDescendants extends HasMany
{
Expand Down
3 changes: 2 additions & 1 deletion src/Eloquent/Relations/MorphToManyOfDescendants.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@

/**
* @template TRelatedModel of \Illuminate\Database\Eloquent\Model
* @template TDeclaringModel of \Illuminate\Database\Eloquent\Model
*
* @extends BelongsToManyOfDescendants<TRelatedModel>
* @extends \Staudenmeir\LaravelAdjacencyList\Eloquent\Relations\BelongsToManyOfDescendants<TRelatedModel, TDeclaringModel>
*/
class MorphToManyOfDescendants extends BelongsToManyOfDescendants
{
Expand Down
3 changes: 2 additions & 1 deletion src/Eloquent/Relations/RootAncestor.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@

/**
* @template TRelatedModel of \Illuminate\Database\Eloquent\Model
* @template TDeclaringModel of \Illuminate\Database\Eloquent\Model
*
* @extends HasOne<TRelatedModel>
* @extends \Illuminate\Database\Eloquent\Relations\HasOne<TRelatedModel, TDeclaringModel>
*/
class RootAncestor extends HasOne
{
Expand Down
3 changes: 2 additions & 1 deletion src/Eloquent/Relations/RootAncestorOrSelf.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@

/**
* @template TRelatedModel of \Illuminate\Database\Eloquent\Model
* @template TDeclaringModel of \Illuminate\Database\Eloquent\Model
*
* @extends RootAncestor<TRelatedModel>
* @extends \Staudenmeir\LaravelAdjacencyList\Eloquent\Relations\RootAncestor<TRelatedModel, TDeclaringModel>
*/
class RootAncestorOrSelf extends RootAncestor
{
Expand Down
3 changes: 2 additions & 1 deletion src/Eloquent/Relations/Siblings.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@

/**
* @template TRelatedModel of \Illuminate\Database\Eloquent\Model
* @template TDeclaringModel of \Illuminate\Database\Eloquent\Model
*
* @extends HasMany<TRelatedModel>
* @extends \Illuminate\Database\Eloquent\Relations\HasMany<TRelatedModel, TDeclaringModel>
*/
class Siblings extends HasMany
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -129,9 +129,11 @@ protected function mergeExpressions(Builder $query, Builder $from): Builder
$fromQuery->expressions
);

return $query->addBinding(
$query->addBinding(
$fromQuery->getRawBindings()['expressions'],
'expressions'
);

return $query;
}
}
8 changes: 6 additions & 2 deletions src/Eloquent/Relations/Traits/IsAncestorRelation.php
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,9 @@ public function getRelationExistenceQuery(Builder $query, Builder $parentQuery,
);
};

return $this->addExpression($constraint, $query->select($columns));
$query->select($columns);

return $this->addExpression($constraint, $query);
}

/**
Expand Down Expand Up @@ -128,7 +130,9 @@ public function getRelationExistenceQueryForSelfRelation(Builder $query, Builder
);
};

return $this->addExpression($constraint, $query->select($columns), $from);
$query->select($columns);

return $this->addExpression($constraint, $query, $from);
}

/**
Expand Down
6 changes: 4 additions & 2 deletions src/Eloquent/Relations/Traits/IsOfDescendantsRelation.php
Original file line number Diff line number Diff line change
Expand Up @@ -237,9 +237,9 @@ protected function addExpression(callable $constraint, ?Builder $query = null, $
$this->getExpressionForeignKeyName(),
(new $this->parent())->setTable($name)
->newQuery()
->select($this->getExpressionLocalKeyName())
->withGlobalScopes($this->intermediateScopes)
->withoutGlobalScopes($this->removedIntermediateScopes)
->select($this->getExpressionLocalKeyName())
);
});

Expand Down Expand Up @@ -368,7 +368,9 @@ public function getRelationExistenceQuery(Builder $query, Builder $parentQuery,
$this->addExistenceExpressionWhereConstraints($query, $table);
};

return $this->addExpression($constraint, $query->select($columns), $alias);
$query->select($columns);

return $this->addExpression($constraint, $query, $alias);
}

/**
Expand Down

0 comments on commit 5fb33a3

Please sign in to comment.