使用PHP进行开发的过程中,多少都有过从学习使用模板引擎(实现页面前端设计和后台业务逻辑代码清晰分开,便捷开发)到使用成熟的框架(如zend、symfony等)的学习经历,或者一些朋友直接在一些开源程序上进行二次开发(如国内的ecshop、discuz,国外的wordpress等),也都会有了解并学习其模板机制的过程。在这基础上,我们可以试着写个小东西玩玩。
首先,我们需要大致了解一下smarty模板引擎和php的反射类。最新的smarty模板引擎可以从http://www.smarty.net/download 下载得到,这里我们使用Smarty-3.1.13.zip。下载后解压可以看到里面包含有demo和libs两个文件夹,把demo重命名为tpls。然后新建个项目,把tpls和libs拷贝到项目里,该项目便可以使用smarty作为模板引擎开发了。php反射类主要用于路由地址解析后,动态的加载controller控制类里对应的action方法。感兴趣的朋友可在http://www.php.net/manual/zh/class.reflectionclass.php里了解使用方法。其中项目里使用反射类为:
View Code
1 //动态加载控制类 2 $re = new ReflectionClass($this->classname . "Controller"); 3 //获取实例 4 $controller = $re->newInstance(); 5 //调用action方法 6 if(isset($this->method)){ 7 $method = $re->getMethod($this->method); 8 }else{ 9 $method = $re->getMethod("indexAction"); 10 } 11 //执行方法 12 $method->invoke($controller, $this->argsarr);
做好两个准备后,在系列二中我们开始布局我们的小框架。