尊重地,
我正在寻找一种方法来在 PHP 中组织我的 HTML 标记,以便在提供主要静态内容的网站中使用(阅读:对于 .edu 网站)。(虽然这是这个问题的主旨,但我肯定也对非静态案例感兴趣,因为我可能很快“需要”处理会话和用户登录事件等)
我经常看到用于 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 和几乎所有东西还是有点陌生,哈哈 */