emreuyguc/easytag

简单的HTML标签创建器。

1.0.0 2021-10-07 17:57 UTC

This package is auto-updated.

Last update: 2024-09-26 16:18:15 UTC


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>