1<?php 2 3namespace Drupal\user; 4 5use Drupal\Core\Field\FieldDefinitionInterface; 6use Drupal\Core\Field\Plugin\Field\FieldType\StringItem; 7 8/** 9 * Defines a custom field item class for the 'name' user entity field. 10 */ 11class UserNameItem extends StringItem { 12 13 /** 14 * {@inheritdoc} 15 */ 16 public function isEmpty() { 17 $value = $this->get('value')->getValue(); 18 19 // Take into account that the name of the anonymous user is an empty string. 20 if ($this->getEntity()->isAnonymous()) { 21 return $value === NULL; 22 } 23 24 return $value === NULL || $value === ''; 25 } 26 27 /** 28 * {@inheritdoc} 29 */ 30 public static function generateSampleValue(FieldDefinitionInterface $field_definition) { 31 $values = parent::generateSampleValue($field_definition); 32 // User names larger than 60 characters won't pass validation. 33 $values['value'] = substr($values['value'], 0, UserInterface::USERNAME_MAX_LENGTH); 34 return $values; 35 } 36 37} 38