-1

Webプログラミング初心者。インクルードを使用してページをテンプレート化するのが一般的かどうか疑問に思っていました。たとえば、ヘッダー、ナビゲーション、フッターのコードがすべて別のファイルにあり、コンテンツが異なる特定のページにそれらを含めます。これは、私の研究で出くわしたテンプレート言語や Smarty のようなテンプレート エンジンとどのように違うのでしょうか?

4

3 に答える 3

1

インクルードテンプレートの問題は、フッターとヘッダーを含めることができるファイルをインクルードする必要があることです。特殊なケースは保守が難しく、多くのファイルを変更する可能性があります。

最良の方法は、フッター、ヘッダー、サイドバーなどを処理できるレイアウトでテンプレートを装飾することです。

純粋な技術的観点から、テンプレートは、それ自体の周りに一般的なプレゼンテーションを含めるために、テンプレートではなく一般的なプレゼンテーションに含まれています。

Symfony1とTwigテンプレートエンジンがそれを行っています。

于 2012-11-08T08:58:31.553 に答える
1

私はこの方法を使用しており、Web開発に適していると思います。

ただし、include関数の代わりにrequire_once関数を使用することをお勧めします

テンプレートエンジンについてはよくわかりません。

于 2012-11-08T08:25:35.330 に答える
0

IMHO 私は、ページ間を移動しないものを含む単一のレイアウト ビューを使用するのが好きです。

<!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テンプレート エンジンを参照してください。
それはそれを非常に簡単にします

layout.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 に答える