有一个名为CodeIgniter Library下载,使得这一切很容易。一旦你学会了如何实现它,编码变得非常简单。它还允许您更改每个页面或控制器以具有不同的模板(布局)。
使用我上面你提到的系统可以做到以下几点:
<?php
function index() {
$data['some_variable'] = 'some data';
$this->template->write_view('content', 'page/home', $data);
$this->template->render();
}
?>
任何地方,你也可以更改模板要使用:
<?php
$this->template->set_template('login');
?>
所有这些模板有保存名称在配置文件中。您可以拥有任意数量的模板。
模板文件本身会是这个样子:
<html>
.... etc. all other html elements
<body>
header html goes here
<?=$content?>
footer html goes here
</body>
</html>
,你甚至可以设置部分,以能够写入您的内容。我通常不这样做,因为它包括了很多意见,但如果你需要这样的完全控制,你仍然可以这样做:
<?php
function index() {
$data['header'] = 'header info';
$data['content'] = 'content info';
$data['sidebar'] = 'sidebar info';
$data['footer'] = 'footer info';
$this->template->write_view('content', 'page/home', $data);
$this->template->write_view('header', 'modules/header');
$this->template->write_view('sidebar', 'modules/sidebar');
$this->template->write_view('footer', 'modules/footer');
$this->template->render();
}
?>
HTML模板代码:
<html>
.... etc. all other html elements
<body>
<div id="header">
<?=$header?>
</div>
<div id="content">
<div id="left">
<?=$content?>
</div>
<div id="sidebar">
<?=$sidebar?>
</div>
</div>
<div id="footer">
<?=$footer?>
</div>
</body>
</html>
这样,您只需要担心在所有控制器功能中包含一个文件。如果您不使用PHP 5(您应该切换),那么您将不想使用<?=$content?>
,而是使用<?php echo $content; ?>
。
这会提高性能吗? – 2009-07-24 01:02:48
网站的性能?我不这么认为。编程的性能?当然,因为您将在布局和内容之间分离控制器和视图,并且正确执行。 – Residuum 2009-07-24 08:11:25