PHP:使用DOM构建(X)HTML输出-优缺点?

PHP:使用DOM构建(X)HTML输出-优缺点?,php,html,dom,xhtml,Php,Html,Dom,Xhtml,我刚从一个新站点开始,我决定使用dominemplementation来构建完整的站点 你怎么看,速度够快吗?我预计它会比基本的打印方法慢一点。我更喜欢DOM-one,因为它在构建最终输出时允许更大的灵活性,更不用说更无错误的XHTML了。不管怎样,我想至少做一些速度比较 你能给我推荐一些保持PHP代码干净(即保持HTML处于最低水平)的方法吗?你可以有一个Widget类,它有checkBox、textArea等方法。视图/控制器基类定义一个函数addContent($aString)。当你构建

我刚从一个新站点开始,我决定使用dominemplementation来构建完整的站点

你怎么看,速度够快吗?我预计它会比基本的打印方法慢一点。我更喜欢DOM-one,因为它在构建最终输出时允许更大的灵活性,更不用说更无错误的XHTML了。不管怎样,我想至少做一些速度比较


你能给我推荐一些保持PHP代码干净(即保持HTML处于最低水平)的方法吗?

你可以有一个Widget类,它有checkBox、textArea等方法。视图/控制器基类定义一个函数addContent($aString)。当你构建一个表单时,你会说

$builder = new Widget();
$this->addContent($builder->textArea("Description", $description, 5, 100);
$this->addContent($builder->radioGroup("Platform", array("FreeBSD", "Linux", "Windows"), $platform, 100);
在哪里


然后,您的表单对HTML一无所知:它们严格地使用UI组件进行操作。小部件类的子类可能会生成HTML或其他任何东西。

速度够快吗?当然,这完全取决于你的网站。对于一个普通的站点或原型站点来说,这很好,但我肯定不想在一个复杂的、高流量的站点上部署DOM模板解决方案

您将无法以这种方式生成与HTML兼容的XHTML;您必须在生成纯的、不兼容IE的XHTML的
saveXML
和创建HTML4的
saveHTML
之间进行选择。CDATA元素,如
style
script
也可能需要注意

DOM调用对于内容创建也非常冗长,就像在JavaScript中创建节点而不使用辅助函数或框架一样。与PHP模板相比,我不确定生成的代码是否可读


您可以通过使用一致的标记树,将PHP结构处理为
,以更简单的方式使PHP模板“更干净”<代码>就像它们是XML开始和结束标记一样,始终以“格式良好”的样式对它们进行嵌套和缩进。有关一些讨论,请参阅。

有趣的概念,而不是我自己认为的。看看其他人对此有什么看法是很有趣的。分离HTML生成还允许独立于表单/视图控制器改变生成。人们可能会从DOM开始,发现它很好——或者发现它太慢,并用平面字符串或其他任何东西替换它,而不会影响表单本身。(这项功能肯定有成本。)
public function textArea($name, $value, $numLines, $width) {...}
public function radioGroup($title, $nameArray, $selectedValue, $width0 {...}
// etc.