comsolit / html-builder
使用流畅的API构建HTML标签
1.0
2015-05-21 12:27 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- phpunit/phpunit: ~4.3
This package is auto-updated.
Last update: 2024-08-28 14:30:31 UTC
README
HTMLBuilder
PHP构建小型HTML片段的轻量级实用类。
示例
所有示例都需要一个 use Comsolit\HTMLBuilder;
语句。
带有内部文本的链接标签
$builder = new HTMLBuilder('a', 'comsolit AG'); $builder->addAttribute('href', 'https://www.comsolit.com'); $this->assertEquals( '<a href="https://www.comsolit.com">comsolit AG</a>', $builder->build() );
没有结束标签的输入标签
$builder = new HTMLBuilder('input'); $builder ->setVoid() // don't build a closing tag ->addAttribute('type', 'text') ->addAttribute('name', 'some_name'); $this->assertEquals( '<input type="text" name="some_name"/>', $builder->build() );
带有内部文本的标签
$builder = new HTMLBuilder('span', 'my text'); $this->assertEquals( '<span>my text</span>', $builder->build() );
使用 __toString() 魔法方法
$builder = new HTMLBuilder('span'); $this->assertEquals( $builder->build(), (string)$builder );
包装标签
$inputBuilder = (new HTMLBuilder('input'))->setVoid(); $labelBuilder = new HTMLBuilder('label', $inputBuilder); $this->assertEquals( '<label><input/></label>', (string)$labelBuilder );
封装标签
$inputBuilder = (new HTMLBuilder('input'))->setVoid(); $labelBuilder = $inputBuilder->encapsulate('label'); $this->assertEquals( '<label><input/></label>', (string)$labelBuilder );
条件设置属性
$builder = (new HTMLBuilder('input')) ->setVoid() ->addAttribute('type', 'checkbox') ->addAttributeIf(1 + 1 === 3, 'disabled', 'disabled') ->addAttributeIf(1 + 1 === 2, 'checked', 'checked'); $this->assertEquals( '<input type="checkbox" checked="checked"/>', (string)$builder );
类专用特殊方法
$builder = (new HTMLBuilder('span')) ->addClass('once') ->addClass('multiple') ->addClass('multiple'); $this->assertEquals( '<span class="once multiple"></span>', (string)$builder );
添加多个子项
$builder = new HTMLBuilder('ul'); for ($i = 0; $i < 2; ++$i) { $builder->addChild(new HTMLBuilder('li', (string)$i)); } $this->assertEquals( '<ul><li>0</li><li>1</li></ul>', (string)$builder );
相关包
我们已经在三个项目中使用了这个构建器,然后评估了其他包以决定是否要发布此构建器。
- QueryPath
- FluentDOM
- php-html-generation-class - 上次提交于2012年,总共有9次提交,不在Packagist上
- php-class-html-generator - 只是一个片段,没有包
- phpquery - 上次提交于2011年
- ratrijs/html-builder
- howlowck/html-builder
- jleagle/html-builder