【发布时间】:2013-06-10 20:44:17
【问题描述】:
对于我的大多数项目,我制作了一个管理界面,每个项目的设计都相同。 header、footer、topbar、leftmenu、css等的设计总是一样的。每次都创建视图很可惜;所以我在想:也许有一种很好的方法可以将管理界面放入我的 MVC 库中,因为它被每个项目重用?
但目前,在每个视图中,我都得到如下代码:
<?php $this->_include('/includes/doctype.php'); ?>
<head>
<?php $this->_include('/includes/head.php'); ?>
<title>Some title</title>
</head>
<body>
<?php $this->_include('/includes/topbar.php'); ?>
<div id="page">
<?php $this->_include('/includes/header.php'); ?>
<?php $this->_include('/includes/leftmenu.php'); ?>
<div id="content" role="main">
<h1>Some title</h1>
<p>Blah blah blah.</p>
</div><!-- /#content -->
<?php $this->_include('/includes/footer.php'); ?>
</div><!-- /#page -->
</body>
</html>
从界面结构中提取自定义内容并以某种方式将该结构放入我的库中以使其可重用是否是个好主意? 之后如何自定义标题和实际菜单?
【问题讨论】:
-
大部分框架都支持布局。所以你可以把重复的东西放在一个布局中,并在控制器中指定它。
-
我自己做了MVC框架,所以我想我需要了解一下这些布局机制是如何工作的
-
有几种方法可以做到这一点:布局、视图助手、复合视图和 hmvc。 ymmv。
-
@Gordon 你知道大多数 MVC 框架是如何实现布局系统的吗?最常见的方法是什么?
-
@Matthew 我想说最常见的方法是拥有一个带有固定部分的主布局,例如页眉,页脚,菜单。然后将特定页面请求的内容填充到布局中的内容部分。请注意,通用并不意味着它一定是最好的方法,它只是一种(简单的)方法。
标签: php template-engine code-reuse