hguenot/html-builder

小巧的PHP HTML构建库

v1.0.1 2018-10-21 07:46 UTC

This package is auto-updated.

Last update: 2024-09-21 21:32:04 UTC


README

一个简单的库,用于使用类似jQuery的界面生成HTML片段。

此库不解析HTML,也不通过选择器或其他方式提供元素查找。它专注于构建简单的HTML片段,例如嵌入代码,同时注意适当的转义和其他简单的语法规则。其目的是替换字符串的手动拼接。

(基于 https://github.com/timostamm/html-builder - PHP 7支持及发布)

###持续集成

Build Status Code coverage GitHub version Packagist version

示例

function generateBarcodeHtml( $barcode ) {
	
	$generator = new BarcodeGeneratorHTML();
	$htmlCode = $generator->getBarcode( $$barcode->toString(), $$barcode->getType(), 1, 45 );
	
	$el = Html::element('div');
	$el->addClass('barcode-container');
	
	Html::element('div')
		->addClass('barcode-bars')
		->html( $htmlCode )
		->appendTo($el);
	
	Html::element('div')
		->addClass('barcode-number')
		->text( $normalizedValue->toString() )
		->appendTo($el);
	
	return $el;
}

public function generateMenu(array $items) {
	
	$ul = Html::element('ul');
	
	foreach ( $this->items as $item ) {

		$li = Html::element('li')
			->appendTo( $ul )
			->toggleClass('active', $item['id'] === $this->activeId);
		
		Html::element('a')
			->attr('href', '/' . $item['url_key'] . '.html')
			->text( $item['title'] )
			->appendTo( $li );
		
	}
	
	return (string)$ul;
}

工厂方法

Html::element($tagName)

创建一个元素。

Html::comment($text)

创建一个注释节点。

Html::text($text)

创建一个文本节点。

添加元素

$el->append($tagNameOrNode)

将新元素作为最后一个子元素添加。

$el->appendTo(Element $target)

将元素作为目标元素的最后一个子元素添加。

$el->prepend($tagNameOrNode)

将新元素作为第一个子元素添加。

$el->prependTo(Element $target)

将元素作为目标元素的第一个子元素添加。

元素属性

$el->attr($name, $value)

设置具有给定名称和值的属性。

$el->attr($name)

返回具有给定名称的属性。

$el->attr()

以关联数组的形式返回所有属性。

$el->removeAttr($name)

移除具有给定名称的属性。

元素HTML

$el->html($str)

添加一个原始HTML字符串作为子元素。

$el->html()

返回内容的HTML表示形式。

$el->__toString() / $el->toString()

以HTML形式返回节点。

元素文本

$el->html($str)

添加一个文本节点。

$el->text()

返回此节点及其后代文本内容。

元素类

$el->addClass($class)

添加一个或多个类。多个类之间用空格分隔。

$el->hasClass($class)

如果元素具有该类,则返回true。

$el->toggleClass($class, $state)

移除或添加类。

获取类

使用 $el->attr("class")

元素标签名

$el->getTagname()

返回标签名。

$el->switchTagname($value)

更改标签名。