mvc框架

一、MVC

M       Model  模型:处理数据库的信息的

V        View   视图层实现显示的

C       Controller 控制器  司令:命令模型层处理数据;命令视图层显示数据

优势:

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

 

Ecshop   php 的代码和html相分离然后用include连接

Smarty   模板引擎-------就是将php  html 分离,分配数据,显示模板内容

1,model 处理数据的,原则是:

每一张数据表对应一个模型,例如,需要操作user数据表,在model里面就应该有userModel这个文件

2,我们要结合smarty作为视图层,构建这个MVC框架

①,前台的文件放在根目录下;后台的文件放在 /admin目录下

②,既然phphtml相分离了,那么前台需要模板目录,后台也需要模板目录

③,前台和后台都需要图片和样式表,所以都要有images  css 目录

④,再创建一个被公共加载的目录,例如此目录包含图片的处理类,分页类(helpers文件)

⑤,创建data目录存放缓存文件

通过地址栏传递不同的参数,控制器类中定义不同的方法,通过act参数实现控制器调用不同方法

用户访问网站无非就是增删改查-----我们通过传递不同的参数,实现不同的功能

 

3searchAction

我们将控制器所做的所有的动作,定义为一个函数,统一xxxAction

例如用户传递c=goods&a=search

代表调用goodsController控制器的searchAction方法

,4Model:

通常我们针对每个数据表,建立一个相对的操作数据的文件,采用面向对象的思想编写这个文件,每个表见一个类

在项目中创建一个models目录,用来放置操作数据库的文件,我们采用面向对象的思想编写这个文件(类)

由于每个操作数据表的文件,都需要连接数据库,因此我们再次将链接数据库的文件提取出来,让其他操作数据库的对象继承

基类模型   baseMode.class.php

基类控制器baseController.class.php

 

 由于每次都要连接数据库,我将链接数据库的代码提取出来,生成一个类,

一般这个公用的模型叫做基类模型()

5,面向对象特性:

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

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

③,多态

 

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

 

类的属性:

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

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

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

6,现在由于每个类,相对于index.php,因为他最终被index.php加载进去的,如果加载的文件过多的话,相对路径会非常复杂,但是绝对路径(根目录)不变的

优化方案:

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

常量:

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

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

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

如何定义:

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

获得网站的根目录:

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值