像PHP模板一样的HTML模板


HTML templating like PHP templating

我知道像这样的事情以前已经被问过好几次了,只是我不容易理解还是太难接受事情真的是这样那样的。

我知道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>

HTML没有模板功能。

它有框架和iframe,但它们有显著的缺点,只提供include功能。

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

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

PHP将完成这项工作(它跨越了编程语言和模板语言的边界)。我个人更喜欢模板工具包。

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

如果您转而构建具有更高服务器端需求的网站,那么您可以继续使用TT,因为它是受支持的,但Perl中的大多数web框架(例如,TT的dancer模块和TT的catalyst模块)。请注意,这些链接指向模块的硬编码文档,如果您计划使用其中一个框架,您应该从更高级别的教程开始)

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

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

因此,最好考虑HTML文档,就像您可能考虑Word文档一样,它是显示给用户的文本负载。

一旦你想开始使用模板来显示动态信息(可能是数据库中的东西),你就需要一种脚本语言。PHP对此很好。

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


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

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

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

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

  • 聪明
  • Twig
  • 拿铁
  • 野马

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


或者,您可以加载HTML,将其解析为DOM文档,然后修改DOM。我创建了DOMQuery库,以便能够使用类似jQuery的语法来实现这一点,但您也可以使用普通PHP或其他几个库中的一个。


或者,您可以在前端使用JavaScript进行一些HTML模板化。如果您想在前端和后端同时使用HTML模板,您可能需要考虑使用Mustache,因为Mustache模板既可以在前端(使用JavaScript)也可以在后端(使用PHP)使用。