我知道像这样的事情以前已经被问过好几次了,只是我不容易理解还是太难接受事情真的是这样那样的。
我知道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)使用。