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的内置函数,可以自动以变量调节器的形式在模板里使用