构建mvc框架学习

﹥>﹥吖頭↗ 提交于 2020-03-16 12:01:42

某厂面试归来,发现自己落伍了!>>>

做了那么久PHP开发,开始尝试去做一个简单的mvc框架。

一、首先确定目录结构

由于不太想弄得太复杂的结构,因此,将所有的目录存放于libs中,项目根目录只留一个index.php以及config.php,形成一个类似于thinkPHP的单一入口模式。

libs中目录结构为Controller(控制器),Model(模型),View(视图),ORG(第三方类库)

单一入口模式的优点:

    1.可以在入口文件中完成一系列所有文件都要进行的一些相同操作,例如安全性检查,数据安全拦截,特殊字符过滤,数据统计等多种功能

    2.在单一入口模式可以使整个项目看上去更规整,更易于日后的维护

    3.单一入口模式更易于拦截非法请求

同时单一入口模式也存在一些缺陷,例如url不美观等问题

二、视图引擎的选择

好的视图引擎:

    1.基于该引擎开发出的视图模板更贴近标准的html等

    2.语法简单易懂

    3.良好的缓存机制

    4.扩展性能好

    5.网络资源多(其实就是有问题能度娘的到,发帖能有一堆人顶!d=====( ̄▽ ̄*)b)

基于上述种种原因,lz选择了smarty模板引擎,不为啥,任性!(主要还是因为我最常用的就是介个==、),在lz的纠结之下,终于选择了smarty-3.1.29版本

三、模板引擎引入、配置

    1.smarty获取

        将smarty中libs文件夹下的smarty引擎的核心文件复制到ORG中

        

    2.smarty目录说明

        /Smarty.class.php       #smarty引擎的主文件

        /sysplugins                 #smarty引擎的内部plugin

        /plugins                      #smarty引擎的外部plugin,可自由扩充

        /SmartyBC.class.php #用于增强smarty引擎的上下兼容能力

    3.引入smarty

        在smarty同级目录下创建一个test目录用作引入,同时在test目录下创建test.php文件,通过test文件进行smarty的引入测试以及练习。

        test.php中通过以下代码进行smarty引擎的引入      

<?php
	require('../smarty/Smarty.class.php');
	$smarty=new Smarty();
?>

    4.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;//缓存时间

?>

    5.使用smarty引擎

    通过实例化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模板文件即可进行测试是否引入成功


刚换工作,暂时暂停更新==、

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!