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
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.