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-inputholy-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杯啤酒,点了只蜥蜴,点了¡杯啤酒。