withMetadata( function (ClassMetadata $metadata) { /* @var $metadata \Doctrine\ORM\Mapping\ClassMetadata */ return $metadata->fieldMappings; }, $class ); } protected function decorateItem(ReflectionClass $class, NodeInterface $node, ClassVisitorInterface $visitor, $field) { $isIdentifier = $this->withMetadata( function (ClassMetadata $metadata) use ($field) { /* @var $metadata \Doctrine\ORM\Mapping\ClassMetadata */ return $metadata->isIdentifier($field['fieldName']); }, $class ); $node->addAttribute( new Field( $field['fieldName'], $field['type'], $field['unique'], $field['nullable'], $isIdentifier ) ); } public function toConfig(array &$conf) { $conf['decorators'][] = 'fields'; } }