PHP高级课(MVC框架)笔记_第1页
PHP高级课(MVC框架)笔记_第2页
PHP高级课(MVC框架)笔记_第3页
PHP高级课(MVC框架)笔记_第4页
PHP高级课(MVC框架)笔记_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 PHP(MCV)框架笔记一1. MVC概念与作用1.MVC是一种非常重要的设计模式,是三个字词的缩写,分别为:模型(Model)、视图(View)和控制器(Controller)2.MVC模式的目的就是实现web系统的职能分工,它强制性使应用程序的输入、处理和输出分开,可以各自处理自己的任务,是一种分层的概念.二.MVC模式的工作原理1.视图(view)2.模型(model)3.控制器(controller)4.MVC的设计思路是把一个应用的输入、处理、输出流程按照model、view和controller的方式进行分离,这样一个应用被分成三个层(模型层,视图层,控制层).三.MVC模式的优

2、点1. MVC是构筑软件非常好的基本模式,至少将业务处理与显示分离,强迫将应用分为模型、视图及控制层,使得你会认真考虑应用的额外复杂性,把这些想法融入架构中,增加了应用的可拓展性,如果能把握这一点,mvc模式会使你的应用更加强壮,更加有弹性,更加个性化四.MVC的缺点1.对开发人员的要求比较高2.MVC是一种基本的设计模式3.视图和模式的严格分离可能使得调试难度较高,但是比较容易发现错误五.什么是框架1.框架就是一个系统的半成品,是在给定的问题领域内,实现了一个应用程序的一部分设计,是整个或部分系统的可重用设计,表现为一组抽象构件以及构件实例间交互的方法,并且提供了丰富的组件库,只增加了一些内

3、容或调用一些提供好的组件就可以完成自己的系统六.MVC采用的是单一的入口文件1.如:http:/localhost/lamp120/mvc/index.php?m=stu&a=add /开打学生信息的添加页面1.1其中的M值stu表示访问的是stuCinteroller a的add表示是方法(动作) 就是访问stuAction的add方法2.mvc通过请求访问了控制层C,C调度M模型获取我们所需要的信息数据,然后再去加载V视图将结果整合后响应给我们3.mvc是一种设计模式,不是框架,使用mvc设计的模式搭建的项目架构才叫框架.七.创建目录1.ORG 第三方扩展类2.Model M(模型

4、)层目录(M)3.controller C(控制)层目录(C)4.view V(视图) 层目录(Smarty的模板目录)5.public公共资源目录6.libsSmarty库(解压到这里即可)7.view_cSmarty模板编译目录(可选)8.cacheSmarty静态缓存目录(可选)9.configs 配置文件目录七.将自己写好的数据库操作类放到model目录下model/model.class.php八.在ORG目录下创建一个tpl.class.php的smarty子类,用于初始化smarty(等同于以前的init.php)代码如下:1./Smarty信息的初始化类class Tpl ex

5、tends Smartypublic function _construct()parent:_construct(); /构造父类2. /初始化Smarty对象中属性:3. $this->template_dir = "view"/smarty模板目录$this->compile_dir = "view_c"/smarty模板编译目录$this->config_dir = "configs"/smarty配置文件目录$this->cache_dir = "cache"/smarty模板静态

6、缓存目录/$this->caching = true;/是否开启静态缓存/$this->cache_lifetime = 3600;/静态缓存时间(秒)/指定定界符$this->left_delimiter="<"/左定界符$this->right_delimiter=">"/右定界符9. 在controller目录下创建Controller类,继承Tpl类,文件名叫:controller.class.php 代码如下:/Controller的控制基类class Controller extends Tplpublic

7、 function _construct()parent:_construct();/*Controller初始化方法(在这个方法里根据参数a的值决定调用对应的方法) * */public function init()/获取a参数的值$a = isset($_GET"a")?$_GET"a":"index" /默认值为index/判断当前Controller是否存在此方法if(method_exists($this,$a)/调用此方法$this->$a();elsedie("没有找到$a对应的方法");十.

8、在最外层,创建一个index.php的入口文件<?php/网站的主入口程序/自动加载类function _autoload($name)$name = strtolower($name);/转成小写if(file_exists("./controller/$name.class.php")require("./controller/$name.class.php");elseif(file_exists("./model/$name.class.php")require("./model/$name.class.php

9、");elseif(file_exists("./ORG/$name.class.php")require("./ORG/$name.class.php");elseif(file_exists("./libs/".ucfirst($name).".class.php")require("./libs/".ucfirst($name).".class.php");elseif(file_exists("./libs/sysplugins/$name.php

10、")require("./libs/sysplugins/$name.php");elsedie("错误:没有找到对应$name类!");/数据连接配置文件require("./configs/config.php");/获取参数m的值,并创建对应的Controller对象$mod = isset($_GET'm')?$_GET'm':"index"/拼装Controller类名$classname = ucfirst($mod)."Controller"

11、;/创建对应的Controller对象$controller = new $classname();/执行Controller的初始化(Controller入口)$controller->init();十一.在configs的目录下创建一个config.php的配置文件7. 测试:-1. 在Controller目录下创建一个indexcontroller.class.php文件/* 网站入口的主Controller类*/class IndexController extends Controller/默认入口方法public function index()$this->assig

12、n("title","MVC的测试界面");$this->display("index.html");十二.在view目录下创建index.html模板页面<html><head><title><$title></title></head><body><h2><$title></h2></body> </html>十三.搭建MVC结构(使用mvc设计模式搭建的框架) 基于MVC,解耦合

13、(高内聚,低耦合),优点:易维护、易扩展十四.内聚性又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。十五.耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息十六.本MVC模式采用的是单一入口:如:http:/localhost/lamp120/mvc/index.php?m=stu&a=add /打开学生信息的添加界面其中m的值stu表示访问的是StuController a的值add表示是方法(动作)就是访问StuAction的add方法。localhost/mvc/index.php?m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论