【发布时间】:2014-08-05 12:08:34
【问题描述】:
我正在创建自己的原始 MVC(或某些人可能称之为 MVP)框架,我想知道在我的控制器中包含页眉、页脚和其他任何内容的最佳实践方式。
目前,我在 每个 控制器的末尾执行以下操作:
class Index extends Controller
{
public function index()
{
$hData = array(
'title' => 'Home',
'stylesheets' => array(
'style1.css',
'style2.css'
),
'javascripts' => array(
'script1.js',
'script2.js'
)
);
$cData = array(
'heading' => 'My first PHP application',
'message' => 'Hello, world!'
);
//HTML Output
$header = new View('/views/header.php');
$html = $header->fetch($hData);
$menu = new View('/views/menu.php');
$html .= $header->fetch();
$content = new View('/views/index.php');
$html .= $content->fetch($cData);
$footer = new View('/views/footer.php');
$html .= $footer->fetch();
echo $html;
}
}
我做得对还是有更好的方法?如果是这样,我将不胜感激。
【问题讨论】:
-
imo,“控制器”更像是“经理”。它要求其他人“用适当的页眉和页脚显示内容”,而不是自己做。它需要知道在什么情况下需要调用哪个“视图”。 “视图”和“模型”决定内容。
-
我认为没有项目规范很难回答这个问题。如果您正在为 1.000.000 个用户构建应用程序,那么当您为 100 个用户构建应用程序时,您将有其他要求。根据我的经验,我可以告诉你,如果你正在构建一个巨大的应用程序,你需要一个更复杂的框架。除了框架架构问题,我想给你一些建议,让你看看 SPA。 IMO 这就是未来。 AngularJS 是一个不错的入门框架。如果您想编写自己的 SPA 框架,请确保您对 JS(内存泄漏)有足够的了解
标签: php controller include footer