1

最近,我编写了一个小型且功能齐全的 CMS,没有 OOP 逻辑,并且采用了著名的不良做法来包含页眉、内容和页脚:

<?php
     require_once("header.php");

     //Content

     require_once("footer.php");
?>

现在,我正在尝试建立一个基于模板引擎的新 CMS 。我读了很多关于Smarty & CO的文章。但我认为这并不完全清楚,因为您需要学习这种特定的语言。那么我该怎么做呢?我一直在寻找这个,但似乎找不到任何符合要求的东西....

提前感谢

4

2 回答 2

0

让所有内容都通过重写进入单个路由文件,然后像这样拉取正确的文件:

ob_start();
include('page_you_need_to_load.php');
$html = ob_get_contents();
ob_end_clean();

include('header.php');
echo $html;
include('footer.php');
于 2012-12-20T21:21:43.637 回答
0

您需要做的是将生成内容数据的代码位和显示数据的代码位分开。在 MVC 领域,数据部分将由模型/控制器处理,并由视图显示。解释您的代码:

<?php
require('data.php');
require('header.php');
require('display.php');
require('footer.php');

这在逻辑上简化为:

<?php
require('data.php');
require('display.php');

data.php只会将数据生成特定变量,display.php然后将其转化为可显示的内容。最好在输出任何内容之前完成所有与内容相关的工作,以防您想返回并更改 HTML 标头中的某些内容 [即:页面标题] 或执行 HTTP 重定向或其他header()操作。

研究 MVC 风格的编码是一个好主意,我发现以下两页对于理解和创建 MVC 应用程序非常有用。

http://www.onextrapixel.com/2012/03/14/a-detailed-overview-of-the-model-view-controller-mvc-coding-structure/

http://www.phpro.org/tutorials/Model-View-Controller-MVC.html

于 2012-12-20T21:24:57.843 回答