emreuyguc / easytag
简单的HTML标签创建器。
1.0.0
2021-10-07 17:57 UTC
Requires
- php: >=7.4
README
PHP的Html/Xml标记标签创建器。
这是一个使用PHP的简单标记标签创建工具。你可以使用Tag对象中的辅助方法,并在需要时构建它。如果你愿意,你可以使用TagBuild扩展类立即构建你的标签。
对于HTML标签中的自闭合元素,我在扩展的HtmlTag类中定义了自闭合标签,并使用TagBuilder提供了即时渲染。
用法
Tag对象
- 初始化
$tag = new Tag(string $name);
- 快速初始化
Tag::@tagname(array|string|Tag $element) : Tag
- 元素方法
$tag->setElements(array<Tag|String> $elements);
$tag->appendElement(Tag|String $elements);
$tag->prependElement(Tag|String $elements);
- 属性方法
$tag->setAttrs(array<[key,value]> $attrs);
$tag->addAttr(string $attr, string $value);
$tag->removeAttr(string $attr);
- 构建方法
$tag->setSelfClosing(bool $isPaired = TRUE);
$tag->build(): string
$tag->render(): void
快速标签构建器
TagBuild::@tagname(array|string|Tag $element) : string
HTML标签构建器
HtmlTag::@tagname(array|string|Tag $element) : string
或者带有属性
HtmlTag::@tagname(array $attrs, array|string|Tag $element) : string
特性
- 所有方法都可以链式调用。
- Tag对象有静态方法用于快速标签初始化。只需用你的标签名调用静态方法即可。返回类型为Tag。
- HtmlTag和TagBuild是抽象类,只需用你的标签名调用静态方法。元素在运行时构建,并且只返回字符串。
- Tag对象和TagBuild快速初始化特性可以接受数组、字符串和标签对象。如果你不喜欢使用数组,你可以添加无限个标签或字符串类型的参数,并将这些参数定义为元素。
- 当使用Tag对象快速初始化或使用TagBuild时,如果第一个参数是[key=> value]数组,则类将自动定义属性。
- 在版本1.0.0中,所有输出都经过美化处理。此功能目前没有任何设置。
示例
对象示例
$data = [ [ 'price' => '15.95', 'name' => 'Cap', 'code' => 'C1234' ], [ 'price' => '23.95', 'name' => 'Tshirt', 'code' => 'T1534', ] ]; $products = new Tag('products'); $products->addAttr('last-date','17.08.2021'); foreach ($data as $product_detail){ $product = new Tag('product'); foreach ($product_detail as $key => $value){ $product->appendElement((new Tag($key))->appendElement($value)); } $products->appendElement($product); } $products->render();
- 输出
<products last-date="17.08.2021"> <product> <price>15.95</price> <name>Cap</name> <code>C1234</code> </product> <product> <price>23.95</price> <name>Tshirt</name> <code>T1534</code> </product> </products>
快速渲染示例
echo TagBuild::config( TagBuild::server('localhost'), TagBuild::port('8080'), TagBuild::db('tagV1'), TagBuild::user('root'), TagBuild::pass('toor'), );
- 输出
<config> <server>localhost</server> <port>8080</port> <db>tagV1</db> <user>root</user> <pass>toor</pass> </config>
用于自闭合标签的Easy Html
echo HtmlTag::html( HtmlTag::head( HtmlTag::title('Html Example'), HtmlTag::meta(['author' => 'emreuyguc']), HtmlTag::link(['rel' => 'stylesheet','href' => 'your.css']), ), HtmlTag::body( HtmlTag::div(['class' => 'content'],'hello',' world'), HtmlTag::script(['src' => 'your.js']) ) );
- 输出
<html> <head> <title>Html Example</title> <meta author="emreuyguc" /> <link rel="stylesheet" href="your.css" /> </head> <body> <div class="content">hello world</div> <script src="your.js"></script> </body> </html>