mouf/html.tags

本包包含HTML5标签的纯PHP对象表示。每个现有的HTML标签都有一个类,每个属性都有一个getter/setter。

安装数: 20,022

依赖者: 1

建议者: 0

安全性: 0

星标: 3

关注者: 13

分支: 1

开放问题: 0

类型:mouf-library

v1.0.0 2015-04-24 08:48 UTC

This package is auto-updated.

Last update: 2024-09-15 05:01:21 UTC


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();

你也可以使用addClassaddStyle添加类或样式。

$label->addClass("css-class3");
$label->addStyle("background-color", "red");

###管理子元素

你可以使用setChildrenaddChild向你的标签添加子元素。

$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是一个提供图形依赖注入框架以确保良好的开发实践的努力。