Skip to content

Commit

Permalink
ArgumentsProcessor - allow only mapped classes
Browse files Browse the repository at this point in the history
  • Loading branch information
ondrejmirtes committed Jan 15, 2024
1 parent 08b193c commit 0edf5b0
Showing 1 changed file with 15 additions and 1 deletion.
16 changes: 15 additions & 1 deletion src/Type/Doctrine/ArgumentsProcessor.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,14 @@
class ArgumentsProcessor
{

/** @var ObjectMetadataResolver */
private $objectMetadataResolver;

public function __construct(ObjectMetadataResolver $objectMetadataResolver)
{
$this->objectMetadataResolver = $objectMetadataResolver;
}

/**
* @param Arg[] $methodCallArgs
* @return list<mixed>
Expand Down Expand Up @@ -49,7 +57,13 @@ public function processArgs(
}

if ($value->isClassStringType()->yes() && count($value->getClassStringObjectType()->getObjectClassNames()) === 1) {
$args[] = $value->getClassStringObjectType()->getObjectClassNames()[0];
/** @var class-string $className */
$className = $value->getClassStringObjectType()->getObjectClassNames()[0];
if ($this->objectMetadataResolver->isTransient($className)) {
throw new DynamicQueryBuilderArgumentException();
}

$args[] = $className;
continue;
}

Expand Down

0 comments on commit 0edf5b0

Please sign in to comment.