wiosna-dev/html-element

HTML创建的简单PHP抽象。

该包的规范存储库似乎已消失,因此该包已被冻结。

v2.2.0 2017-02-17 09:38 UTC

README

Build Status

HTML创建的简单PHP抽象。

请查看测试以了解用法

$a = (new HtmlElement("a"))
    ->setContent('Image: ')
    ->addElement(
        (new HtmlElement("img"))
            ->setIsSelfClosing(true)
            ->setAttribute("src", "i.png")
    );

echo (string) $a;

输出

<a>Image: <img src="i.png" /></a>

函数列表

new HtmlElement()

它是库中的唯一对象。唯一的参数是HTML标签。

$div = (new HtmlElement('div'));

如果将对象投影到字符串对象,将生成其自身的HTML和所有内部元素。

echo $div;将输出

<div></div>

->setTagName(字符串)

此方法允许在创建元素后更改元素的TagName。

$div = (new HtmlElement('div'));
$div->setTagName('p');

echo $div;将输出

<p></p>

->setAttribute(字符串, 字符串)

设置元素的属性。它可以用来覆盖属性值。

$div = (new HtmlElement('div'))->setAttribute('id', 'superDiv');

echo $div;将输出

<div id="superDiv"></div>

->setAtrributes(数组)

移除元素的属性并从给定的数组中设置新的属性。

$div = (new HtmlElement('div'))->setAttribute('id', 'superDiv');
$div->setAttributes([
    'class' => 'normalDiv notSoShiny',
    'style' => 'color: grey',
]);

echo $div;将输出

<div class="normalDiv notSoShiny" style="color: grey"></div>

->setIsSelfClosing(布尔值)

设置元素的selfClosing规则。自动闭合的元素将不显示内容内的内部元素。

$div = (new HtmlElement('div'))->setIsSelfClosing(true);

echo $div;将输出

<div />

->setContent(字符串)

设置元素的内容。它将作为字符串显示。

$div = (new HtmlElement('div'))->setContent('Hello');

echo $div;将输出

<div>Hello</div>

->addElement(HtmlElement)

设置内部HtmlElement元素。内部元素将按设置的顺序显示。内部元素将在内容之后显示。

$span = (new HtmlElement('span'));
$div = (new HtmlElement('div'))
    ->addElement($span);

echo $div;将输出

<div>
    <span></span>
</div>

->setElements(数组)

移除元素的内部元素并从给定的数组中设置新的元素。设置内部HtmlElement元素。内部元素将按设置的顺序显示。内部元素将在内容之后显示。

$span = (new HtmlElement('span'));
$div = (new HtmlElement('div'))
    ->setElements([
        $span,
        (new HtmlElement('p'))
    ]);

echo $div;将输出

<div>
    <span></span>
    <p></p>
</div>

->setIsTagHidden(布尔值)

通过将TagHidden设置为true,您可以隐藏元素的标签和属性,直接显示其内容和内部元素。多亏了这种方法,您可以使用HtmlElement作为容器,保持内部元素的列表。

$div = new HtmlElement('div');

$div->setContent('Content:');
$div->addElement((new HtmlElement('h1')));
$div->addElement((new HtmlElement('span')));

$div->setIsTagHidden(true);

echo $div;将输出

Content:
<h1></h1>
<span></span>

额外的属性操作方法

->removeAttribute(字符串)

移除指定名称的属性。

$div = (new HtmlElement('div'))
    ->setAttribute('id', 'superDiv')
    ->setAttribute('class', 'normalDiv');

$div->removeAttribute('id');

echo $div;将输出

<div class="normalDiv"></div>

->getAttribute(字符串)

搜索指定名称的属性并返回它,如果没有找到则返回null。

$div = (new HtmlElement('div'))
    ->setAttribute('id', 'superDiv')
    ->setAttribute('class', 'normalDiv');

$attribute = $div->getAttribute('id');

echo $attribute;将输出

superDiv

->getAttributes()

返回属性数组。

$div = (new HtmlElement('div'))
    ->setAttribute('id', 'superDiv')
    ->setAttribute('class', 'normalDiv');

$attributes = $div->getAttributes();

附加内容和元素方法

->getElements()

返回内嵌Html元素的数组。

$div = new HtmlElement('div');
$div->addElement((new HtmlElement('h1')));
$div->addElement((new HtmlElement('span')));

$innerElements = $div->getElements();

->getContent()

返回内容字符串(由setContent方法设置)。

$div = new HtmlElement('div');
$div->setContent('Hello');

$content = $div->getContent();

类属性操作方法

此方法允许对"类"属性进行高级操作。此方法可以与正常的$htmlElement->setAttribute('class', ...)用法混合使用。

->addClass( string )

将给定的className添加到给定元素的"类"属性。

$div = (new HtmlElement('div'))
    ->addClass('superDiv')
    ->addClass('normalDiv');

echo $div;将输出

<div class="superDiv normalDiv"></div>

->removeClass( string )

从"类"属性中移除给定className的类。

$div = (new HtmlElement('div'))
    ->setAttribute('class', 'classNameA classNameB classNameC');

$div->removeClass('classNameB');

echo $div;将输出

<div class="classNameA classNameC"></div>

样式属性操作方法

此方法允许对"style"属性进行高级操作。此方法可以与正常的$htmlElement->setAttribute('style', ...)用法混合使用。

->addStyles( string, string )

允许向"style"属性添加单个样式。

$div = (new HtmlElement('div'))
    ->addStyles('color', 'red')
    ->addStyles('font-size', '2em');

echo $div;将输出

<div style="color: red; font-size: 2em"></div>

->addStyles( array )

向"style"属性添加样式数组。

$div = (new HtmlElement('div'))
    ->addStyles([
        'color' => 'red',
        'font-size' => '2em'
    ]);

echo $div;将输出

<div style="color: red; font-size: 2em"></div>

->removeStyles( string )

从"style"属性中移除给定styleName的样式。

$div = (new HtmlElement('div'))
    ->addAttribute('style', 'color: red: font-size: 2em');

$div->removeStyles('color');

echo $div;将输出

<div style="font-size: 2em"></div>

->removeStyles( array )

从"style"属性中移除在样式名称数组中给出的样式。

$div = (new HtmlElement('div'))
    ->addAttribute('style', 'color: red: font-size: 2em; width: 100px');

$div->removeStyles(['color', 'font-size']);

echo $div;将输出

<div style="width: 100px"></div>