mvc or smarty

CodeIgniter 不需要模板引擎

虽然 CodeIgniter 确实 自带了一个可选的模板解析器程序,但不要求你必须使用模板。模板引擎完全与本地化PHP代码的性能需求不符,使用模板引擎我们要学习其语法,这最低限度只比学PHP基础要容易一点点。考虑以下PHP代码:

<ul>

<?php foreach ($addressbook as $name):?>

<li><?=$name?></li>

<?php endforeach; ?>

</ul>

再来对比模板引擎所使用的伪代码:

<ul>

{foreach from=$addressbook item="name"}

<li>{$name}</li>

{/foreach}

</ul>

的确,例中模板引擎的代码比较清晰,但这带来一个性能问题,因为伪代码要先被转换成PHP才能运行。我们的目标是性能最大化, 所以我们选择不使用专用的模板引擎。

Stencil 是一个 CodeIgniter 的模板引擎,通过简单可靠的方式来渲染 HTML 页面。 控制器: <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Home extends CI_Controller {     public function __construct()     {         parent::__construct();         $this->stencil->layout('home_layout');         $this->stencil->slice('header');         $this->stencil->slice('footer');     }     public function index()     {         $this->stencil->title('Home Page');         $this->stencil->js('some-plugin');         $this->stencil->js('home-slider');         $this->stencil->css('home-slider');         $this->stencil->meta(array(             'author' => 'Nicholas Cerminara',             'description' => 'This is the home page of my website!',             'keywords' => 'stencil, example, fun stuff'         ));         $data['welcome_message'] = 'Welcome to my website using Stencil!';         $this->stencil->paint('home_view', $data);     } } /* End of file home.php */ /* Location: ./application/controllers/home.php */ 模板: <!doctype html> <html> <head>     <!-- robot speak -->         <meta charset="utf-8">     <title><?php echo $title; ?> | My Stencil Website</title>     <?php echo chrome_frame(); ?>     <?php echo view_port(); ?>     <?php echo apple_mobile('black-translucent'); ?>     <?php echo $meta; ?><!-- //loads data from $this->stencil->meta($args) in controller -->     <!-- icons and icons and icons and icons and icons -->     <?php echo favicons(); ?>     <!-- crayons and paint -->       <?php echo add_css(array('bootstrap', 'style')); ?>     <?php echo $css; ?><!-- //loads data from $this->stencil->css($args) in controller -->     <!-- magical wizardry -->     <?php echo jquery('1.9.1'); ?>     <?php echo shiv(); ?>     <?php echo add_js(array('bootstrap.min', 'scripts')); ?>     <?php echo $js; ?><!--  //loads page specific $this->stencil->js($args) from Controller (see docs) --> </head> <!-- $body_class will always be the class name --> <body class="<?php echo $body_class; ?>">     <header>         <?php echo $header; ?>     </header>     <h1><?php echo $welcome_message; ?></h1>     <section class="content">         <?php echo $content; ?><!-- This loads home_view -->     </section>     <footer>         <?php echo $footer; ?>     </footer> </body> </html> 标签:Stencil
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值