敬意を表して、
主に静的コンテンツを配信する Web サイトで使用するために、PHP 内で HTML マークアップを整理する方法を探しています (読み取り: .edu Web サイトの場合)。(これがこの質問の主な目的ですが、セッションやユーザーログインイベントなどを処理する必要がすぐに「必要になる」可能性があるため、静的でないケースにも間違いなく興味があります)
PHP (および Coldfusion、.NET などの他の言語) でよく使用されるパターンは次のとおりです。
// define header stub in header.php
<!DOCTYPE html>
<html>
<body>
<div id="headerWrapper">
<!-- header content goes here -->
</div>
<div id="contentWrapper">
// end header stub
// define footer stub in footer.php
</div><!-- end contentWrapper -->
<div id="footer">
<!-- footer content goes here -->
</div>
</body>
</html>
// end footer stub
このパターンを使用するには、次のようにコンテンツ ファイルを定義します。
// define content stub in contentFile.php
<?php include("header.php") ?>
<p>hello world</p>
<!-- other content goes here -->
<?php include("footer.php") ?>
// end content stub
もっと探しています。上記の例で私が抱えている問題は、一般的なパターンで必要な結合のレベルです。つまり、たとえば、header.php と footer.php の間にはいくつかの重要な依存関係があります (つまり、ページ構造、ぶら下がっている contentWrapper div タグ、および下位レベルでは、すべてのページで必要とされない避けられない css および js インクルード)。 . 特にカプセル化を探しています。私の理想的なコンテンツ ページは次のようになります。
// ideal.php
<?php
$someObj.pageTitle="My First Page!!!";
$someObj.headInclude("/css/960.css");
$someObj.headInclude("/js/myFancyThing.js");
$someObj.preferedTemplate = "default"; /* or maybe "MathDept" or something like that */
?>
<!-- page content goes here, just semantic and structural markup, let the
template handle H1 and Paragraph formatting :) -->
// end ideal stub
この最後のパターンは、私が非常に見たいものです。私には、プレゼンテーションからコンテンツを分離するためのはるかにエレガントなソリューションのように思えます。PHPでこれを明確にする方法はわかりませんが、実現可能だと思います。どんな助けでも大歓迎です!ありがとうございました!!!:)
/* 私が質問した内容が適切にスコープされ、タイトルが付けられていることを願っています。それ以外の場合はご容赦ください。私は、Stack Exchange、PHP、およびほとんどすべてのことについて、まだ少しグリーンです笑 */