hguenot / html-builder
小巧的PHP HTML构建库
v1.0.1
2018-10-21 07:46 UTC
Requires
- php: >=7.1
- hguenot/data-tree: v1.*
Requires (Dev)
- phpunit/phpunit: ~6.3
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支持及发布)
###持续集成
示例
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)
更改标签名。