zpf 视图

2014年8月19日 18:12:16

smarty使用了2年,使用PHP本身做模版引擎也有4个多月了,最终还是在我的这个框架中抛弃了smarty,转用原生的PHP代码做模版引擎,并简单写了一个视图类,还没有实现缓存功能

视图类文件在libs/view.php

控制器中的使用方法(代码在current_module/controller/xxx.php):

 1 class _index extends Main

 2 {

 3     public function initc()

 4     {

 5         $this->starttpl = array('header', 'sider');

 6         $this->endtpl = array('footer');

 7     }

 8 

 9     public function index()

10     {

11         $this->view->a = 111;

12         $this->view->b = 222;

13         $this->view->c = 333;

14         $this->show('test');

15     }

16 }

效果是: 依次显示 header.php -> sider.php -> test.php -> footer.php, 并将其中用到的变量$a,$b,$c赋值;

3行: 该函数是默认执行的函数,凡是进入该_index控制器的请求都会执行这个方法,该方法定义了默认显示的模版文件名,框架会在默认的路径下找到他们,并依次显示

11~13行: 给视图模版中使用到的变量赋值,由于PHP语法的灵活,给对象的变量赋值时,这些变量不必要事先存在,赋值后可以通过 get_object_vars();获取这些临时定义的变量;

14行: 显示模版test.php,因为第3行的代码,所以实际上会依次显示模版: header.php -> sider.php -> test.php -> footer.php

 

模版中使用变量(模版放在current_module/views/current_controller/test.php):

<?= $a, $b, $c ?>

模版中完全使用PHP的语法规则,不像smarty中又定义了一套语法规则

你可能感兴趣的:(视图)