MVC框架中知识点

MVC:

是什么?

一种架构:写代码的规范,按照这种结构去写

 

有什么优势:

因为之前处理数据的和负责业务逻辑的写在一个PHP文件里面,如果项目做大的话,就会特复杂,所以我们可以把负责处理数据的和显示数据的,php业务逻辑的分开写,各司其职,提高效率

 

M V C 各自的职责是什么:

M ----- 处理数据

V------ 处理显示的

C------ 控制器(司令)协调M V

 

 

如何让他们关联起来

1index.php  通过地址栏传递参数

2,获得传递的参数来调用不同的控制器(Controller

3,控制器再根据参数调用不同的动作(Action

 

 

1,控制器的职责:

命令模型层处理数据

1,模型层的代码“:

模型层命名规则:

 

基类模型:最基本的(被提取出来的),把数据库常用的操作提取出来,放到baseModel.class.php

做软件开发的注意:能不用数据库就不用,

由于链接数据库需要用户名密码

 

一般我们定义私有的属性,这样可以避免其他的成员来访问,那么怎么访问这些私有属性呢?

通过在构造方法中,实现

当我们实例化一个对象时,会自动调用这个类的构造方法,这样就给我们提供了一个访问该类的私有属性的契机(机会)

面向对象特性:

1,继承(通过继承可以获得不同类的属性和方法)

2,封装(类库),将公共部分封装一个类

3,多态

 

继承:子类会继承父类的属性和方法,如果子类有构造函数,子类使用自己的构造函数,如果没有使用父类的构造函数(__construct

 

类的属性:

Public 公有的(类的其他成员可以直接访问)

Private 私有的(只有当前类的对象可以访问)

Protected  受保护的(继承之后的对象可以访问)

 

注意:

1,一般我们在控制器里面定义控制器的动作(Action),通过地址栏a=传递,命名规则写成xxxAction()

2,return 返回当前函数的返回值

 

 

现在由于每个类,相对于index.php,因为他最终被index.php加载进去的

入股加载的文件过多的话,相对路径会非常复杂

但是绝对路径(根目录)不变的

优化方案:

因为所有的文件都要先经过入口文件,所以我的思路就是在入口(index.php)文件,定义常量(保存网站的根目录)

常量:

1,常量定义:一般大写;

2,常量的作用域是全局的不用考虑的作用域范围,

3,在脚本运行期间,常量的值不变

如何定义:

Define(),参数1,常量名;参数2,常量值

获得网站的根目录:

通过系统内置的常量__FILE__获得

 

 

命令视图层显示数据

我们要把smarty作为视图层,实现数据的显示

本身没有这个功能,但是可以借助别的文件来实现,这个功能就是插件,一般我们把插件放到plugins目录下面

 

一般缓存或者临时文件,我们放到data目录里面

 

由于更新数据后还要显示更新后的数据,需要smarty,所以我们再次将smarty的常用配置封装(提取)出来,通常我们将控制器的公共的文件封装到基类控制器(baseController

面向对象思想去封装:

  方法

class goodsController{

       publicfunction searchAction(){

              //控制器命令模型层处理数据

              requireROOT_PATH."models/goodsModel.class.php";

              $goodsModel = newgoodsModel('localhost','ajax','root','');

              $row = $goodsModel ->search();

              //命令视图层显示数据

              requireROOT_PATH."plugins/smarty/smarty.class.php";

              $smarty = new Smarty();

              $smarty ->template_dir =ROOT_PATH."views/";

              $smarty ->compile_dir =ROOT_PATH."data/template_c";

              $smarty ->assign('list',$row);

              $smarty ->display("1.tpl");

       }

       publicfunction updateAction(){

             

       }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值