1

我处理一个由大量静态内容组成的网站。关于该网站,困扰我的一件事是重复/一次性标记的数量,每次我必须更改或更新 UI 时,我都必须修改很多不同的文件,然后确保我没有打破任何东西。我正在考虑将网站内容移动到 PHP 服务器并重新组织网站内容以使我的工作更轻松。

/* 这对我来说也是一种练习。我想用 PHP 弄湿我的脚。因此,我选择不使用现成的框架。*/

以下模式是否适合用于静态网站?也就是说,假设我想要一个简单的框架来管理我的网站,并且我想将我的网站 UI 与我的内容分离,这是完成它的合理方法吗?我有没有忽略什么?

假设我想为网站上的每个页面声明我的内容,如下所示:

/* begin contentStub.php */
<?php $headerUtil->setTitle("Hola Mundo!"); ?>
<p>Hello world</p>
/* end contentStub.php */

还假设我想为我的网站使用一个简单的模板,如下所示:

/* begin UITemplate.php */
<!DOCTYPE html>
<html>
    <head>
        <title><?php echo($headerUtil->getTitle()); ?></title>
    </head>
    <body>
        <?php echo($content); ?> 
    </body>
</html>
/* end UITemplate.php */

现在假设我将 auto_prepend_file 的 PHP 指令设置为使用以下文件:

/* begin file: prepend.php */
<?php
    class HeaderUtil
    {
        private $title;
        public function __construct()
        {
            $this->title = "new page";
        }
        public function getTitle(){return $this->title;}
        public function setTitle($title){$this->title = $title;}

        //TODO: Add methods/collections to deal with css/js/keywords
    }

    $headerUtil = new HeaderUtil();

    ob_start();
        include($_SERVER['SCRIPT_FILENAME']);
    $content = ob_get_contents();
    ob_end_clean();

    include("UITemplate.php");

    die();
?>
/*  end file: prepend.php */

这个例子似乎按照我的预期运行。这是使用 PHP 将我的网站 UI 与我的内容分离的合理方法吗?更具体地说,假设我的要求不变,使用我的方法是否会面临任何明显和/或重大的安全性、稳定性或资源耗尽风险?

提问的动机:我对 Coldfusion 有一些经验,并且以前使用过 Java ServerFaces 2。对于这些技术,线程/范围很重要,并且在任何语言中,文件访问时间都至关重要。我在这里错过了什么吗?

4

0 回答 0