-1

网络编程新手。我想知道使用包含来模板页面是否很常见。例如,您将页眉、导航和页脚代码都放在单独的文件中,然后将它们包含在内容不同的特定页面中。这与我在研究中遇到的模板语言或模板引擎(如 Smarty)有何不同?

4

3 回答 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 回答