becklyn/html-builder

构建HTML的简单助手

2.2.1 2022-02-17 11:28 UTC

This package is auto-updated.

Last update: 2024-09-17 17:17:37 UTC


README

元素构建器

use Becklyn\HtmlBuilder\Builder\HtmlBuilder;
use Becklyn\HtmlBuilder\Node\HtmlElement;

$builder = new HtmlBuilder();

$link = new HtmlElement("a", [
    "href" => "https://becklyn.com", 
], [
    "Becklyn Studios"
]);

assert('<a href="https://becklyn.com">Becklyn Studios</a>' === $builder->buildElement($link));

属性构建器

use Becklyn\HtmlBuilder\Builder\HtmlBuilder;
use Becklyn\HtmlBuilder\Node\HtmlAttributes;

$builder = new HtmlBuilder();

$attributes = $builder->buildAttributes(new HtmlAttributes([
    "href" => "https://becklyn.com",
    "target" => "_blank",
]));

echo "<a {$attributes}>Becklyn</a>"; 

特殊值

  • false: 条目将被省略
  • null: 将被省略
  • true: 将作为布尔属性渲染,例如 "checked" => true 作为 <input checked>
$full = $builder->build([
    "first" => "a",
    "removed1" => false,
    "removed2" => null,
    "checked" => true,
    "last" => "b",
]);


assert($full === 'first="a" checked last="b"'); // true

向元素添加预编译的HTML

为了避免内容自动转义,您可以使用 SafeMarkup

$link = new HtmlElement("div");
$link->addContent(new SafeMarkup("This will <b>not</b> be escaped!"));

assert('<div>This will <b>not</b> be escaped!</div>' === $builder->buildElement($link));