PHP - 寻找一个HTML生成器/管理器

3

我正在寻找一个可以用来生成程序化标记的工具(非实际单词)。以下是我想要在伪代码中实现的示例...

$htmlDoc = new HTML_Document();

$htmlDoc->setTitle('Cool Title');

$htmlDoc->addJs('some_js_file.js');
$htmlDoc->addStylesheet('some_css_file.css');

$divElement = new HTML_Element_Div();
$htmlDoc->append('body', $divElement);

$output = $htmlDoc->generate();

什么是最好的工具呢?
4个回答

5
我正在开发一个简单的DSL来解决这个常见的任务。它被称为htmlgen,在packagist上有镜像。
以下是一个示例 -
use function htmlgen\html as h;

h('#wrapper',
  h('h1.title', 'Hello, World'),
  h('p',
    h('comment', 'link to something'),
    h('a', ['href'=>'https://duckduckgo.com'], 'search the internet')
  )
);

以下是输出结果(实际输出没有空格)

<div id="wrapper">
  <h1 class="title">Hello, World</h1>
  <p>
    <!-- link to something -->
    <a href="https://duckduckgo.com">search the internet</a>
  </p>
</div>

这是一个非常新的项目,源代码只有约200行,但功能已经很强大了。你可以fork它并进行调整,或者给我发送建议。


喜欢那个 subInject 方法! - Paolo Falomo

3

2
编写自己的简单框架非常简单,是一个很好的学习经验。你可以在一两个小时内实现它,事实上,我仅在几周前为最近的项目完成了这项工作。
我的建议是:
1. 创建一个简单的 .HTML 模板,并使用占位符标签,我使用语法 %HTML_TITLE%,您的 setTitle 方法只需进行 STR-REPLACE 即可。 2. 对于 JS、CSS,同样适用。 3. 由于您可能不会每次都添加某些内容,因此在您的 generate() 函数中,重要的是使用 %\w+% 正则表达式删除任何剩余的 %% 标签。

我正在构建一个基于kohana级联文件系统的框架。我想将许多框架库(布局、数据库持久化、输入等)委托给知名、成熟的库。感谢您的好建议! - John Himmelman
通过实践学习加一分。 - Frank Shearar

1

我不知道是否有这样的库,但是编写一个库非常容易,例如可以基于XMLWriter

话虽如此,值得注意的是,php特别设计了避免这种情况。我建议使用模板引擎或者甚至使用'纯'php来输出html。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接