我刚刚开始使用新网站,我决定使用DOMImplementation来构建完整的网站。
你怎么看待它,它足够快吗?我希望它比基本的打印方法慢一点。我更喜欢DOM,因为它在构建最终输出时允许更大的灵活性,更不用说更多的无错误的XHTML。无论如何,我想至少有一些速度比较。
你能否向我推荐一些(可能是完全明显的)想法来保持PHP代码的清洁(即将HTML保持在最低水平)?
答案 0 :(得分:3)
你可以拥有一个包含checkBox,textArea等方法的Widget类。您的View / Controller基类定义了一个函数addContent($ aString)。当你构建一个表单时,你会说像
这样的东西$builder = new Widget();
$this->addContent($builder->textArea("Description", $description, 5, 100);
$this->addContent($builder->radioGroup("Platform", array("FreeBSD", "Linux", "Windows"), $platform, 100);
,其中
public function textArea($name, $value, $numLines, $width) {...}
public function radioGroup($title, $nameArray, $selectedValue, $width0 {...}
// etc.
然后,您的表单对HTML一无所知:它们严格按照UI组件运行。 Widget类的子类可能会生成HTML或其他任何内容。
答案 1 :(得分:2)
速度够快吗?当然,这完全取决于您的网站。对于一个简单的或原型的网站,它会没问题,但我当然不希望在复杂的高流量网站上部署DOM模板解决方案。
您将无法以这种方式生成HTML兼容的XHTML;你必须在产生纯的,非IE兼容的XHTML的saveXML
和创建HTML4的saveHTML
之间进行选择。像style
和script
这样的CDATA元素也可能需要引起注意。
对于内容创建,DOM调用也非常冗长,比如在没有辅助函数或框架的情况下在JavaScript中创建节点。与PHP模板相比,我不确定生成的代码是否可读。
您可以通过使用一致的标记树以更简单的方式使PHP模板“更清晰”,将<?php if (condition) { ?>
... <?php } ?>
等PHP结构视为XML开始和结束标记,以及总是以“格式良好”的方式嵌套和缩进它们。见例如。 this question进行讨论。