PHP模式脱钩UI标记从静态内容(PHP Pattern to Decouple UI Markup

2019-10-18 01:40发布

我处理这个由大量的静态内容的网站。 一个困扰我有关网站的事情之一是重复/一次性标记的数量和每一个我不得不改变或更新UI的时候,我已经修改了很多不同的文件,并确保我没有破坏任何东西。 我正在考虑移动网站内容到PHP服务器并重新组织网站内容,使我的工作更容易。

/ *这也是一个锻炼我的东西。 我希望得到我的脚湿用PHP。 正因为如此,我没有选择去与一个现成的框架。 * /

在下面的模式理智用于静态网站? 也就是说,假设我想为我的管理网站一个简单的框架,我想从我的内容脱钩我的网站的用户界面,这是把它做一个合理的方式? 难道我忽略了什么?

假设我要声明我的网站像这样在每一页的内容:

/* 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.工作了这些技术,线程/范围是很重要的,并且在任何语言,文件的访问时间是至关重要的。 我错过了什么吗?

文章来源: PHP Pattern to Decouple UI Markup from Static Content