如何在没有数据库的情况下制作PHP模板?

时间:2014-12-16 16:34:40

标签: php templates directory-structure

我正在开发一家小公司“宣传册”网站。我有一些重复的例子:

  • 菜单
  • 子菜单
  • 页脚
  • 副标题

说一个页面“comparison.php”需要拥有以上所有内容然后才能拥有内容。我能做到这就是我的开始:

<?php include '/partial/menu.php'; ?>

<p>This is a product comparison</p>
<figure>
  <figcaption>Probably an image here</figcaption>
  ((image))
</figure>
<table>
  <tr><td>Product 1</td><td>Product 2</td></tr>
  <tr><td>Point A</td><td>Point B</td></tr>
</table>

<?php include '/partial/footer.php'; ?>

我在想什么是更好的方式。也许添加一个目录content然后就变成了:

<?php include '/partial/menu.php'; ?>

<?php include '/content/comparison.php'; ?>

<?php include '/partial/footer.php'; ?>

这对我来说仍然很笨,特别是当我根据页面有多个子标题和子菜单时。

我已经在线阅读了有关PHP模板的内容,但是所有内容都只是在数据库中插入变量,Programmers.SE - How to structure template system using plain PHP如何在不使用数据库的情况下尽可能地简化这一过程?请不要告诉我使用CMS,这不是一个选择。

1 个答案:

答案 0 :(得分:2)

好吧,我想我找到了一种非常好的方法。

正在使用的3个主要文件:

  1. comparison.php
  2. information_template.php
  3. 内容/ comparison.php
  4. <强> comparison.php

    <?php
    $pagename = 'comparison';
    
    include('information_template.php');
    ?>

    <强> information_template.php

    <?php include '/content/' . $pagename . '.php'; ?>

    内容/ comparison.php

      

    所有内容都在这里

    现在,我可以在我的根目录中创建一个页面,并在内容中为每个页面创建一个具有相同格式的页面,它应该可以正常工作。我可能会添加一些额外的 comp.php ,例如$pagetype = 'information';$pagetype = 'review';,这样我就可以添加到 information_template.php :< / p>

    <?php include '/partial/' . $pagetype . '-subheader.php'; ?>
    <?php include '/partial/' . $pagetype . '-toc.php'; ?>