protected Attribute::createAttributeValue($name, $value)
Creates the different types of attribute values.
Parameters
string $name: The attribute name.
mixed $value: The attribute value.
Return value
\Drupal\Core\Template\AttributeValueBase An AttributeValueBase representation of the attribute's value.
File
- core/lib/Drupal/Core/Template/Attribute.php, line 113
Class
- Attribute
- Collects, sanitizes, and renders HTML attributes.
Namespace
Drupal\Core\Template
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | protected function createAttributeValue( $name , $value ) { // If the value is already an AttributeValueBase object, // return a new instance of the same class, but with the new name. if ( $value instanceof AttributeValueBase) { $class = get_class( $value ); return new $class ( $name , $value ->value()); } // An array value or 'class' attribute name are forced to always be an // AttributeArray value for consistency. if ( $name == 'class' && ! is_array ( $value )) { // Cast the value to string in case it implements MarkupInterface. $value = [(string) $value ]; } if ( is_array ( $value )) { // Cast the value to an array if the value was passed in as a string. // @todo Decide to fix all the broken instances of class as a string // in core or cast them. $value = new AttributeArray( $name , $value ); } elseif ( is_bool ( $value )) { $value = new AttributeBoolean( $name , $value ); } // As a development aid, we allow the value to be a safe string object. elseif ( $value instanceof MarkupInterface) { // Attributes are not supposed to display HTML markup, so we just convert // the value to plain text. $value = PlainTextOutput::renderFromHtml( $value ); $value = new AttributeString( $name , $value ); } elseif (! is_object ( $value )) { $value = new AttributeString( $name , $value ); } return $value ; } |
Please login to continue.