Php 此页面呈现技术有名称吗?

Php 此页面呈现技术有名称吗?,php,html,perl,templates,Php,Html,Perl,Templates,我正在使用一个动态HTML模板系统(比如PHP),我想知道这个问题/解决方案是否有名字,或者是否已经在某个地方完成了 这个问题涉及到动态控制内容,但是在内容和代码交织之后。想象一下两个页面,一个使用了很多奇特的样式和框架,另一个没有,但是共享相同的“外包装”模板 <!DOCTYPE html> <html> <head> <title>Both pages share a static title</title> <script

我正在使用一个动态HTML模板系统(比如PHP),我想知道这个问题/解决方案是否有名字,或者是否已经在某个地方完成了

这个问题涉及到动态控制内容,但是在内容和代码交织之后。想象一下两个页面,一个使用了很多奇特的样式和框架,另一个没有,但是共享相同的“外包装”模板

<!DOCTYPE html>
<html>

<head>
<title>Both pages share a static title</title>
<script src="..." type="text/javascript">
<script src="..." type="text/javascript">
<script src="..." type="text/javascript">
</head>

<body>
<!-- only this part is dynamic, the top and bottom parts are shared among all pages -->

...
</body>
</html>
以前有人见过这个吗

编辑:这里有人在谈论同样的问题,但有一个稍微不同的解决方案


编辑^2:下面公认的答案是这是模板引擎所做的事情,这是正确的。这个特定场景的困难在于执行引擎和模板引擎交织在一起(就像老式的PHP),因此很难看到描述。用合适的模板很容易解决。

这称为a。除了简单地使用PHP作为模板引擎外,还提供了其他解决方案,如。此外,许多框架(如CakePHP和symfony)也将它们的代码分离到布局和视图中,以实现这一点。对于其他语言,您可以使用ASP、JSP、EJS、Jade、mustaches等。

通过Smarty V3继承,您可以做到这一点。 看看:

依赖项注入 OP不清楚最初的问题。要呈现的页面主体应已隔离到单独的文件中。正是这个主体文件应该对HTML头中的内容有最终决定权,它由另一个文件控制


是的,输出特定脚本的实际功能可以由一个奇特的模板引擎提供,但是这里表达的更重要的思想是依赖注入,其中头文件不需要知道在某个遥远的地方和时间确定的依赖关系。

我觉得很傻/很糟糕。我想,是的,这就是模板所做的,但我只是想象它比直接替换/插值稍微复杂一些。就像,变量可以是一个对象,它可以有方法,它最终会对方法做出响应,最终呈现出来。我想我把这和建筑模式混为一谈了…嗯?没有理由感到愚蠢或糟糕。你只是独立地发现了一个好主意。查看CakePHP如何处理其视图。这和你的方法很相似。
<!DOCTYPE html>
<html>

<head>
__HEAD__
</head>

<body>
<?
    $head->title('my very own title');
    $head->script('jquery 1.5.2');      
?>

...
</body>
</html>
<!DOCTYPE html>
<html>

<head>
<title>my very own title</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript">
</head>

<body>
...
</body>
</html>