网络编程新手。我想知道使用包含来模板页面是否很常见。例如,您将页眉、导航和页脚代码都放在单独的文件中,然后将它们包含在内容不同的特定页面中。这与我在研究中遇到的模板语言或模板引擎(如 Smarty)有何不同?
问问题
212 次
3 回答
1
我使用这种方法,我认为它适合网络开发,
但更喜欢使用 require_once 函数而不是 include 函数
对模板引擎了解不多。
于 2012-11-08T08:25:35.330 回答
1
包含模板的问题是您必须包含设法包含页脚和页眉的文件。特殊情况很难维护,可能会导致修改大量文件。
最好的方法是使用可以处理页脚、页眉、侧边栏等的布局来装饰您的模板
从纯粹的技术角度来看,您的模板包含在一般演示文稿中,而不是您的模板包含围绕自身的一般演示文稿。
Symfony1 和 Twig 模板引擎正在这样做。
于 2012-11-08T08:58:31.553 回答
0
恕我直言,我宁愿拥有一个包含不会跨页面移动的任何内容的单一布局视图。
<!DOCTYPE HTML>
<html>
<head>
<meta></meta>
<styles></styles>
</head>
<body>
<nav></nav>
<header></header>
<section class="rightColumn"></section>
<section class="mainContainer">
<?php include('your/awesome/view.php') ?>
</section>
<footer></footer>
<script></script>
</body>
</html>
你可以看看TWIG模板引擎。
这很容易
布局.html.twig
<!DOCTYPE HTML>
<html>
<head>
<meta name="description" content="{% block metaDesc %}{% endblock %}"></meta>
<style></style>
{% block appendStyle %}{% endblock %}
</head>
<body id="{% block bodyId %}{% endblock %}">
<nav></nav>
<header></header>
<ul class="breadcrumb">
{% block breadcrumb %}{% endblock %}
</ul>
<section class="rightColumn"></section>
<section class="mainContainer">
{% block body %}{% endblock %}
</section>
<footer></footer>
<script></script>
{% block appendScript %}{% endblock %}
</body>
</html>
page.html.twig
{% extends '::layout.html.twig' %}
{% block metaDesc %}Hey, that is my description !{% endblock %}
{% block appendStyle %}
<link rel="stylesheet" href="path/to/specific.css">
{% endblock %}
{% block bodyId %}index{% endblock %}
{% block breadcrumb %}
<li><a href="">Homepage</a></li>
{% endblock %}
{% block body %}
<h1>Awesome Website</h1>
<h3>Latest news..</h3>
<article></article>
{% endblock %}
于 2012-11-08T08:59:20.170 回答