1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?php
- namespace Drupal\Core\Template;
- use Drupal\Component\Utility\Html;
- /**
- * Defines the base class for an attribute type.
- *
- * @see \Drupal\Core\Template\Attribute
- */
- abstract class AttributeValueBase {
- /**
- * Renders '$name=""' if $value is an empty string.
- *
- * @see \Drupal\Core\Template\AttributeValueBase::render()
- */
- const RENDER_EMPTY_ATTRIBUTE = TRUE;
- /**
- * The value itself.
- *
- * @var mixed
- */
- protected $value;
- /**
- * The name of the value.
- *
- * @var mixed
- */
- protected $name;
- /**
- * Constructs a \Drupal\Core\Template\AttributeValueBase object.
- */
- public function __construct($name, $value) {
- $this->name = $name;
- $this->value = $value;
- }
- /**
- * Returns a string representation of the attribute.
- *
- * While __toString only returns the value in a string form, render()
- * contains the name of the attribute as well.
- *
- * @return string
- * The string representation of the attribute.
- */
- public function render() {
- $value = (string) $this;
- if (isset($this->value) && static::RENDER_EMPTY_ATTRIBUTE || !empty($value)) {
- return Html::escape($this->name) . '="' . $value . '"';
- }
- }
- /**
- * Returns the raw value.
- */
- public function value() {
- return $this->value;
- }
- /**
- * Implements the magic __toString() method.
- */
- abstract public function __toString();
- }
|