nodeFactory = $nodeFactory; } /** * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $property */ public function transform(EntityMapping $entityMapping, $property) : void { $manyToOneMapping = $entityMapping->matchManyToOnePropertyMapping($property); if (!\is_array($manyToOneMapping)) { return; } // handled by another mapper unset($manyToOneMapping['joinColumn'], $manyToOneMapping['joinColumns']); // non existing unset($manyToOneMapping['nullable']); $args = $this->nodeFactory->createArgs($manyToOneMapping); $property->attrGroups[] = AttributeFactory::createGroup($this->getClassName(), $args); NodeValueNormalizer::ensureKeyIsClassConstFetch($args, EntityMappingKey::TARGET_ENTITY); } public function getClassName() : string { return MappingClass::MANY_TO_ONE; } }