php中mvc的工作原理,MVC框架基本工作原理

MVC工作原理

MVC要实现的目标是将软件用户界面和业务逻辑分离以使代码可扩展性、可复用性、可维护性、灵活性加强。

Model 模型层,一般对数据的处理,业务逻辑都会放在model进行处理View 视图层,渲染html页面,展示给用户Controller 控制器层,调度View层和Model层,将用户界面和业务逻辑合理的组织在一起,起粘合剂的效果。所以Controller中的内容能少则少,这样才能提供最大的灵活性

常见的MVC框架

Yaf框架:使用PHP扩展形式写的一个PHP框架。优点:性能高,轻量。缺点:功能单一,缺少大量功能。ThinkPHP:国产框架,性能好、比较轻量、有大量的中文文档、提供丰富的功能,适合中、小型项目开发。Laravel框架,重量级框架,提供非常丰富的功能和第三方扩展,适合大型项目开发。

单一入口的工作原理

用一个处理程序文件处理所有HTTP请求,根据请求时的参数的不同区分不同模块和操作请求。

可以进行统一的安全性检查集中处理程序URL过长(URL重新)处理效率低

模板引擎的理解

php是一种HTML内嵌的在服务端执行的脚本语言,但是PHP有很多可以使PHP代码和HTML代码分开的模板引擎例如Smarty。模板引擎就是庞大的正则表达式替换库

Smarty模板引擎的使用

下载 Smarty https://www.smarty.net/download引用并且实例化Smarty

require_once 'smarty-3.1.33/libs/Smarty.class.php';

$smarty = new Smarty();

五配置两方法

$smarty->left_delimiter = "{";        //模板左定界符号

$smarty->right_delimiter = "}";     //模板右定界符

$smarty->setTemplateDir("tpl");        //模板存放目录

$smarty->setCompileDir("compile_c");    //模板编译后生成的php文件存放目录,下次使用相同模板时,不需要重新编译,直接运行之前编译好的模板

$smarty->setCacheDir("cache");        //保存编译的php运行后生成的html页面,

$smarty->setCacheLifetime(120);        //缓存的html页面的有效时间

$smarty->setCaching(true);            //是否开启html缓存

$smarty->assign("var_name",$var);    //绑定变量到模板

$smarty->display("tpl_name");    //渲染模板

基本语法 注释{* *} 变量输出{$}变量调节器,类似将变量传递给调节器函数进行处理,得到一个新值,多个参数用:隔开 {$var|} 内置调节器 capitalize首字母大写 cat字符串链接 default当变量为空时指定默认值条件判断 基本语式

{if $name eq "Fred"}

Welcome Sir.

{elseif $name eq "Wiilma"}

Welcome Ma'am.

{else}

Welcome, whatever you are.

{/if}

常见的条件修饰符,eq(==), neq(!=), gt(>), lt(

循环语句 基本语式

{foreach item=value from=$array}

{$value.var_1}

{$value.var_2}

{$value.var_3}

{foreachelse}

.....

{/foreach}

item 相当于 php foreach as 后面的 变量 from 是需要循环的数组 当数组为空时显示foreachelse的内容

smarty的文件引入

{include file="path/to/somefile" var1="var"  var2="var" ...}

file需要引入模板的路径名 var1,var2…自定义传递给引入模板的变量名

类与对象的使用 {$obj->method()} {$obj->var}函数的使用 可以使用PHP内置的函数

{"Y-m-d H:i:s"|date:timestamp}

可以使用自定义函数

function func(params){

......

}

$smarty->registerPlugin('function','reg_func_name','func_name');

{reg_func_name p1="v1" p2="v2" ...}

reg_func_name是注册到smarty的函数名 func_name需要注册的函数名 在使用函数时 p1,p2 …会被打包成一个数组传递到函数的$params中

自定义插件的使用 常用插件类型 functions函数插件 modifiers修饰插件 block functions 区块函数插件

使用registerPlugin方法注册写好的自定义函数 将写好的插件放入Smarty解压目录中的lib目录下的plugin目录里 PHP的内置函数,可以自动以变量调节器的形式在模板里使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值