最近,我编写了一个小型的功能CMS,没有OOP逻辑,并且使用着名的不良做法来包括标题,内容和页脚:
<?php
require_once("header.php");
//Content
require_once("footer.php");
?>
现在,我正在尝试根据模板引擎设置新的CMS。我读了很多关于 Smarty&amp; amp; CO 。但我认为这不是完全清楚的,因为你需要学习这种特定的语言。 那我该怎么做呢? 我一直在寻找这个,似乎无法找到任何适合该法案的东西......
感谢 in adavance!
答案 0 :(得分: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');
答案 1 :(得分:0)
您需要做的是分离生成内容的数据的代码位和显示数据的代码位。在MVC-land中,数据部分将由Model / Controller处理,并由View显示。用你的代码来解释:
<?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.phpro.org/tutorials/Model-View-Controller-MVC.html