1

我知道这样的事情已经被问过好几次了,只是我不能轻易地理解这个想法,还是太难接受事情真的是这样那样。

我知道 HTML 用于前端,繁琐的工作在客户端完成,而 PHP 在幕后工作(服务器端)。有这么多的规定、指令、标准等等。我相信我已经把自己和这些东西弄糊涂了,让我很难咀嚼和理解东西(新的和旧的),尤其是在它们的最佳用途方面。 ..

无论如何,我已经创建了一个基于 MVC 概念的 Web 应用程序,但我没有使用该主题的强大基础或框架,我自己分离了逻辑、规则和设计关注点。

不幸的是,我遇到了一些类似的问题,例如正确的做事方式,应该如何实施等等......

我最终需要对 HTML 进行模板化,但是,由于我将 HTML 用作 HTML 本身,我最终会更新/编辑每个受影响的文件(例如网页标题),这与我之前使用 PHP 时不同,从字面上看,一个带有 .php 扩展名的文件,我可以在其中充分利用模板,但是,我在某处读到这不是一个好习惯,因为它破坏了 HTML .. 所以我应该遵循哪个以及如何解决我的问题,应该我移至 .php,然后创建一个模板页面,或者有没有办法使用 HTML 来做到这一点?如果有的话,怎么办?

同时,请不要向我指出可用的框架,我想在学习框架之前先了解基本的东西......

任何人,请...

编辑...所以这很好,它没有任何缺点... main.php

 <?php php stuffs ?>
 <html>
 <body>
  HTML stuffs and some <?php php stuffs ?>
 </body>
 </html>
4

5 回答 5

4

HTML 没有模板功能。

它有框架和 iframe,但它们有很大的缺点,并且只提供包含功能。

您应该使用适当的模板语言。这可以在客户端、服务器或构建系统上运行。

我建议不要在客户端上运行它。它增加了访问者(包括搜索引擎索引器)必须满足的不必要的依赖。

PHP 将完成这项工作(它跨越了编程语言和模板语言的边界)。我个人的偏好是Template-Toolkit

TT 可以通过ttree 实用程序在您的构建系统中运行,或者您可以在您的服务器上运行它。有一个教程介绍了如何使用它来构建网站。

如果您开始构建对服务器端要求更高的网站,那么您可以继续使用 TT,因为它受支持,但 Perl 领域的大多数 Web 框架(例如,TT 的dancer 模块和 TT催化剂模块. 请注意,这些链接指向模块的硬编码文档,如果您打算使用其中一个框架,您应该从更高级别的教程开始)

于 2012-08-30T10:18:52.890 回答
0

HTML 是一种标记语言 - 换句话说,它可以标记文本以显示给用户。

它不能执行您在 Web 应用程序中可能需要的任何动态类型功能——例如更新日期。

因此,最好考虑 HTML 文档,就像您可能会想到 Word 文档一样,即向用户显示的大量文本。

一旦您想开始使用模板来显示动态信息(可能来自数据库的内容),您就需要一种脚本语言。PHP 对此有好处。

我对Smarty有很好的经验- 一个 php 模板引擎。


另一方面,学习框架可能是学习基础知识的一个非常有用的部分。大多数框架迫使你以一种好的方式做事,有时它们让你在代码中编写的东西可能看起来有点奇怪或不合逻辑,突然有一天,一分钱会掉下来,你会意识到为什么你被强迫了从工程的角度来看,这样做是合理的。

于 2012-08-30T10:22:08.160 回答
0

你可以看看@javascript 模板。我建议你试试http://mustache.github.com/

于 2012-08-30T10:23:28.780 回答
0

Modest是一个看起来和感觉都像 HTML 的模板系统。

于 2012-09-01T20:20:05.293 回答
0

使用 PHP 进行 HTML 模板化的最常见方法是使用以下流行的模板引擎之一:


或者,您可以在 HTML 中放置类似于<% variablename %>. 只需加载您的 HTML,执行正则表达式即可找到所有占位符并将其替换为相应的变量。


或者,您可以加载 HTML,将其解析为DOM 文档,然后修改 DOM。我创建了库DOM Query以便能够使用类似 jQuery 的语法来执行此操作,但您也可以使用 vanilla PHP 或其他几个库之一。


或者,您可以在前端使用 JavaScript 做一些 HTML 模板。如果你想在前端和后端都做 HTML 模板,你可能需要考虑使用Mustache,因为 Mustache 模板可以在前端(使用 JavaScript)和后端(使用 PHP)中使用。

于 2015-11-23T10:08:24.333 回答