alex-yashin / php-simple-html
描述
1.0.0
2022-06-17 08:31 UTC
Requires
- php: >=7.2.0
- ext-json: *
Requires (Dev)
- phpunit/phpunit: 6.*
README
一个用于生成HTML代码的类。基本方法取自Yii2(从BaseHtml类中移除了所有具有复杂依赖的特定于Yii2的方法)。
增加了以下方法
Html::nest
Html::nest($path, $content = '', $rootOptions = [])
根据类似于xpath的模板生成嵌套Html标签链。
echo Html::nest('div#my-wrapper/a#my.link[href=#][title=my link]') //<div id="my-wrapper"><a id="my" class="link" href="#" title="my link"></a></div>
如果存在ID、类或属性,则可以省略div标签的提及。参数$conten被放置在链中最深层的标签的内容中。在同一层嵌套中,相邻关系通过加号+指定,从相邻关系的结束标签开始继续链。
echo Html::nest('.step/.circle+p', 10) //<div class="step"><div class="circle"></div><p>10</p></div>
属性可以不写值,此时值将等于属性名
echo Html::nest('div/span[disabled]', 'hello!'); //<div><span disabled="disabled">hello!</span></div>
参数$rootOptions补充外部标签的属性。语法与Html::tag
相同
echo Html::nest('.step/.circle+p', 10, ['class' => 'active']) //<div class="step active"><div class="circle"></div><p>10</p></div>
Html::zz
Html::zz($template, ...$items)
一个更复杂的模板引擎,不仅可以处理单个嵌套标签链,还可以模拟复杂的标签树。为此,使用括号来指定层次关系,使用百分号%来指定占位符。相邻关系与nest中的用法相同,通过加号+指定。
echo Html::zz('.circle([data-name=%]+.round%+p)+span%', 'step', 10, 20); //<div class="circle"><div data-name="step"></div><div class="round">10</div><p></p></div><span>20</span>
也可以用于生成具有属性占位符的单个标签
echo Html::zz('input.quantity-field[type=number][name=quantity][step=1][readonly][data-sku=%]', 'SKU'); //<input type="number" class="quantity-field" name="quantity" readonly="readonly" step="1" data-sku="SKU">
Html::br
简单地输出<br>
标签
echo Html::br(); //<br>
Html::li
Html::li($content = '', $options = []);
生成<li>
标签
echo Html::li('test', ['class' => 'active']); //<li class="active">test</li>