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