作了那么久PHP开发,开始尝试去作一个简单的mvc框架。
php
因为不太想弄得太复杂的结构,所以,将全部的目录存放于libs中,项目根目录只留一个index.php以及config.php,造成一个相似于thinkPHP的单一入口模式。html
libs中目录结构为Controller(控制器),Model(模型),View(视图),ORG(第三方类库)缓存
单一入口模式的优势:安全
1.能够在入口文件中完成一系列全部文件都要进行的一些相同操做,例如安全性检查,数据安全拦截,特殊字符过滤,数据统计等多种功能网络
2.在单一入口模式可使整个项目看上去更规整,更易于往后的维护mvc
3.单一入口模式更易于拦截非法请求框架
同时单一入口模式也存在一些缺陷,例如url不美观等问题性能
好的视图引擎:测试
1.基于该引擎开发出的视图模板更贴近标准的html等ui
2.语法简单易懂
3.良好的缓存机制
4.扩展性能好
5.网络资源多(其实就是有问题能度娘的到,发帖能有一堆人顶!d=====( ̄▽ ̄*)b)
基于上述种种缘由,lz选择了smarty模板引擎,不为啥,任性!(主要仍是由于我最经常使用的就是介个==、),在lz的纠结之下,终于选择了smarty-3.1.29版本
将smarty中libs文件夹下的smarty引擎的核心文件复制到ORG中
/Smarty.class.php #smarty引擎的主文件
/sysplugins #smarty引擎的内部plugin
/plugins #smarty引擎的外部plugin,可自由扩充
/SmartyBC.class.php #用于加强smarty引擎的上下兼容能力
在smarty同级目录下建立一个test目录用做引入,同时在test目录下建立test.php文件,经过test文件进行smarty的引入测试以及练习。
test.php中经过如下代码进行smarty引擎的引入
<?php require('../smarty/Smarty.class.php'); $smarty=new Smarty(); ?>
smarty引擎主要配置如下几个配置项
1.左右界定符 :left_delimiter,right_delimiter
2.html模板存放目录:template_dir
3.编译文件存放目录:compile_dir
4.缓存目录:cache_dir
5.开启缓存:caching(非必要)
6.缓存时间:cache_lifetime(非必要)
相应代码以下:
<?php require('../smarty/Smarty.class.php');//引入smarty核心文件 $smarty=new Smarty();//实例化smarty类 $smarty->left_delimiter="{";//左界定符 $smarty->right_delimiter="}";//右界定符 $smarty->template_dir="../../Tpl";//html模板的存放位置 $smarty->compile_dir="../../template_c";//编译生成的文件 // $smarty->cache_dir="../cache";//缓存 //如下是开启缓存的配置 //$smarty->caching=true;//开启缓存 //$smarty->cache_lifetime=120;//缓存时间 ?>
经过实例化smarty变量调用assign以及display方法便可。
assign方法是传递参数方法
display方法是展现模板方法 代码以下
<?php require('../smarty/Smarty.class.php'); $smarty=new Smarty(); $smarty->left_delimiter="{";//左界定符 $smarty->right_delimiter="}";//右界定符 $smarty->template_dir="../../Tpl";//html模板的存放位置 $smarty->compile_dir="../../template_c";//编译生成的文件 // $smarty->cache_dir="../cache";//缓存 //如下是开启缓存的配置 //$smarty->caching=true;//开启缓存 //$smarty->cache_lifetime=120;//缓存时间 $smarty->assign('title','文章标题'); $smarty->display('test.tpl'); ?>
在以前配置的模板存放位置中建立test模板文件便可进行测试是否引入成功
刚换工做,暂时暂停更新==、