add('content', TextType::class, ['label' => false]); } public function renderAsString(?PersonIdentifier $identifier, PersonIdentifierDefinition $definition): string { return trim($identifier?->getValue()['content'] ?? ''); } public function isEmpty(PersonIdentifier $identifier): bool { return '' === trim($identifier->getValue()['content'] ?? ''); } public function validate(PersonIdentifier $identifier, PersonIdentifierDefinition $definition): array { $config = $definition->getData(); $content = (string) ($identifier->getValue()['content'] ?? ''); $violations = []; if (($config[self::ONLY_NUMBERS] ?? false) && !preg_match('/^[0-9]+$/', $content)) { $violations[] = new IdentifierViolationDTO('person_identifier.only_number', '2a3352c0-a2b9-11f0-a767-b7a3f80e52f1'); } if (null !== ($config[self::FIXED_LENGTH] ?? null) && strlen($content) !== $config[self::FIXED_LENGTH]) { $violations[] = new IdentifierViolationDTO( 'person_identifier.fixed_length', '2b02a8fe-a2b9-11f0-bfe5-033300972783', ['limit' => (string) $config[self::FIXED_LENGTH]] ); } return $violations; } public function getDefaultValue(PersonIdentifierDefinition $definition): array { return ['content' => '']; } }