nicklayb / htmlbuilder
此包最新版本(dev-master)没有可用的许可证信息。
构建服务器端HTML的有用助手,支持标签链创建和Bootstrap等模板。
dev-master
2016-09-15 19:32 UTC
This package is auto-updated.
Last update: 2024-09-25 01:48:46 UTC
README
使用PHP构建HTML实体的有用助手
不要用它来构建完整的DOM和完整页面,因为它可能会比纯HTML加载更困难,但是它确保了正确的HTML语法和一些创建标签的友好工具。
用例示例将是向数据表格输出一个编辑按钮。
简介
通过composer安装
composer require nicklayb/htmlbuilder
创建简单的DOM元素
例如,如果你想创建一个类型为 text
且名为 my_input
,并具有 super-input
和 holy-input
类的 input
,你可以这样做。
<?php $tag = '<input type="text" name="my_input" class="super-input holy-input">';
或者你可以这样做
<?php use Nicklayb\HtmlBuilder\Tags\Input; $tag = new Input('text'); $tag->name('my_input') ->classes([ 'super-input', 'holy-input', ]) $tag->make();
make方法将返回你的字符串DOM元素
你可能会说“好吧,如果它需要更多行,那有什么改进?”这仅仅是因为它允许你轻松地操作元素。你可以比连接字符串更容易地滑动类。因此,我发现用5行大约15个字符比一个包含70个字符的连接和三元表达式更好。
每个标签,每个类
大多数标签都有自己的类,让你可以根据需要使用它们。例如,你永远不会将值属性设置到div中。让我们看看一些例子。
<?php use Nicklayb\HtmlBuilder\Tags\A; use Nicklayb\HtmlBuilder\Tags\Input; use Nicklayb\HtmlBuilder\Tags\Select; $tag = new A('http://google.ca'); // $tag = new A; // Both of these will output '<a href="http://google.ca"></>' $tag->href('http://google.ca'); // $tag = new Input; // '<input type="text" />' $tag = new Input('password'); // '<input type="password" />' $tag = new Select([ // <select> '-1'=>'Refused', // <option value="1">Accepted</option> '0'=>'Pending', // <option value="1">Accepted</option> '1'=>'Accepted' // <option value="1">Accepted</option> ]); // </select>
嵌套很有趣
你可以轻松地嵌套标签,让我们一起嵌套一些东西
<?php use Nicklayb\HtmlBuilder\Tags\Div; $div = new Div([ 'main', 'primary-div' ]); $div->child( (new Div('second'))->child( (new Div('third'))->content('Tada, stuff!') ) ); echo $div->make(); /* Will result in <div class="main primary-div"> <div class="second"> <div class="third"> Tada, stuff! </div> </div> </div> */
自定义标签列表
比如说,有时候你会用到Bootstrap按钮,但不想总是重写它。你可以创建一个自定义标签,就像这样
<?php use Nicklayb\HtmlBuilder\Tags\Button as BaseButton; class BsButton extends BaseButton { public function __construct($color = 'default', $size = '') { __parent::__construct(); $this->classes([ 'btn', ($size != '') ? 'btn-'.$size : '', 'btn-'.$color ]); } } // And you can easily use it use MyNamespace\BsButton; (new BsButton)->make() // <button class="btn btn-default"></button> (new BsButton('danger')) // <button class="btn btn-danger"></button>
结论
感谢您使用、测试和改进它,如果您有任何问题,请随时联系我。
结尾笑话
一个QA工程师走进酒吧,他点了1杯啤酒,点了0.3杯啤酒,点了null杯啤酒,点了只蜥蜴,点了¡杯啤酒。