Atribute construite prin intermediul Atribut
clasa sunt scăpate.
The Atribut::__toString()
codul este următorul.
$retur = '';
/** @var \Drupal\Core\Template\AttributeValueBase $value */
foreach ($this->storage as $name => $value) {
$rendat = $valoare->render();
dacă ($rendat) {
$retur .= ' ' . $rendat;
}
}
return $retur;
Într-o clasă care se extinde AttributeValueBase
, de exemplu AttributeString
, face()
conţine următorul cod.
valoare = (șir) $this;
if (isset($aceasta->valoare) && static::RENDER_EMPTY_ATTRIBUTE || !empty($valoare)) {
returnează Html::escape($this->name) . '="' . $valoare . '"';
}
AttributeString::__toString()
conţine următorul cod.
return Html::escape($aceasta->valoare);
Html::escape()
este apelat pentru numele atributului și valoarea acestuia. De aceea, un atribut construit folosind cod similar cu următoarele ghilimele simple din numele și valoarea atributului sunt scăpate.
$atribute = nou Atribut(array());
$attributes['id'] = 'șosete';
$attributes['style'] = 'culoare-fond:alb';
ecou '<pisica' . $atribute . '>';
AttributeArray::__toString()
folosește următorul cod.
// Filtrați toate valorile goale înainte de imprimare.
$this->value = array_unique(array_filter($this->value));
return Html::escape(implode(' ', $aceasta->valoare));
Aceasta înseamnă că pentru un atribut construit folosind cod similar celui următor, valoarea atributului este scăpată.
$atribute = Atribut nou();
$atribute['clasa'] = array();
$attributes['class'][] = 'cat';