mouf / html.tags
本包包含HTML5标签的纯PHP对象表示。每个现有的HTML标签都有一个类,每个属性都有一个getter/setter。
Requires
- php: >=5.4.4
- mouf/html.htmlelement: ~2.0
- mouf/utils.value.value-interface: ~1.0
README
本包包含HTML5标签的纯PHP对象表示。每个现有的HTML标签都有一个类,每个属性都有一个getter/setter。
为什么这么做?
表示HTML标签为PHP对象的方式有很多,大多数情况下,你可能不需要为每个标签创建一个类(你可以使用一个通用的PHP对象来表示任何HTML标签,例如这里、这里或这里)。
那么为什么为每个标签创建一个类呢?
有几个原因:
- 当使用标签时,你可以获得自动完成功能(如果你使用的是一个合理的PHP IDE)
- 你可以在依赖注入框架中使用这些标签(这部分可能听起来非常疯狂,直到你了解更多关于Mouf PHP框架的信息)。
支持的标签列表
基本上,支持所有HTML5中存在且未被弃用的标签。你可以在W3C维基上找到完整的列表这里。
如何使用它?
###基本用法
很简单。你只需使用new
关键字创建一个标签,并使用getter和setter设置属性。最后,调用toHtml()
方法来渲染标签。
$div = new Div(); $div->setId('myDiv'); $div->toHtml();
###流畅的接口
setter使用流畅的接口,所以如果你想的话,可以链式调用多个setter。
$input = new Input(); $input->setType('text')->setName('company')->setLabel('TheCodingMachine'); $input->toHtml();
###设置类和样式
你可以使用数组或字符串设置类和样式。
$label = new Label(); $label->setClasses(array("css-class1 css-class2")); $label->setStyles(array("background-color" => "red")); $label->toHtml();
你也可以使用addClass
或addStyle
添加类或样式。
$label->addClass("css-class3"); $label->addStyle("background-color", "red");
###管理子元素
你可以使用setChildren
或addChild
向你的标签添加子元素。
$div->setChildren(array($label, $input));
$div->addChild($label);
###向标签添加文本
使用addText
向标签添加文本。
$p = new Paragraph(); $p->addText("This is my text");
注意:这类似于创建一个HtmlString
实例并将其添加到节点中。
// Similar to: $p->addChild(new HtmlString("This is my text"));
添加自定义标签
你可能对添加你自己的类以生成自定义HTML代码感兴趣。你需要知道的是,所有标签都实现了HtmlElementInterface
。
这是一个只有一个toHtml()
方法的简单接口。
ValueInterface是什么?
如果你看过代码,你可能已经注意到每个setter接受实现ValueInterface
接口的对象。
这是一个非常强大的功能,允许你在渲染时评估对象。当标签被渲染时,对象的val()
方法被调用并赋值。
Mouf包
此包是Mouf的一部分,Mouf是一个提供图形依赖注入框架以确保良好的开发实践的努力。