Các thuộc tính được xây dựng thông qua Thuộc tính
lớp bị thoát.
Các Thuộc tính::__toString()
mã là mã sau đây.
$return = '';
/** @var \Drupal\Core\Template\AttributeValueBase $value */
foreach ($this->storage as $name => $value) {
$rendered = $value->render();
nếu ($ kết xuất) {
$return .= ' ' . kết xuất $;
}
}
trả về $return;
Trong một lớp mở rộng Thuộc tínhValueBase
, Ví dụ Chuỗi thuộc tính
, kết xuất ()
chứa đoạn mã sau.
giá trị = (chuỗi) $ này;
if (isset($this->value) && static::RENDER_EMPTY_ATTRIBUTE || !empty($value)) {
trả về Html::escape($this->name) . '="' . $value . '"';
}
Thuộc tínhString::__toString()
chứa đoạn mã sau.
trả về Html::escape($this->value);
Html::thoát()
được gọi cho tên thuộc tính và giá trị của nó. Đó là lý do tại sao một thuộc tính được tạo bằng cách sử dụng mã tương tự như một dấu nháy đơn sau bên trong tên và giá trị thuộc tính được thoát.
$attributes = new Attribute(array());
$attributes['id'] = 'tất';
$attributes['style'] = 'background-color:white';
tiếng vang '<con mèo' . thuộc tính $ . '>';
Thuộc tínhArray::__toString()
sử dụng mã sau đây.
// Lọc bỏ mọi giá trị trống trước khi in.
$this->value = array_unique(array_filter($this->value));
trả về Html::escape(implode(' ', $this->value));
Điều này có nghĩa là đối với một thuộc tính được tạo bằng cách sử dụng mã tương tự như mã sau, giá trị thuộc tính sẽ được thoát.
$attributes = new Attribute();
$attributes['class'] = mảng();
$attributes['class'][] = 'mèo';