韩顺平php从model1到分层再到mvc并使用smarty笔记.docVIP

  • 3
  • 0
  • 约3.84千字
  • 约 27页
  • 2018-05-02 发布于河南
  • 举报

韩顺平php从model1到分层再到mvc并使用smarty笔记.doc

韩顺平php从model1到分层再到mvc并使用smarty笔记

Model1 数据库 empmanage 添加数据到emp表 添加数据到admin表 创建empManage项目 用户管理系统框架图 第一次不到数据库的简单验证 Login.php页面 loginProcess.php Empmain.php 302代表重定向 第一次请求登陆处理界面 登陆处理界面又重定向到结果页面 这一共发了两次请求 发出两个请求 服务器端就会启动两个进程 第二次改进: 从数据库验证登陆 用户管理系统框架图 LoginProcess.php页面的修改部分 验证再修改 不区分是密码错误还是不存在该用户的写法: 最后要关闭资源 第一句是释放在内存中占用的空间 第二个是断开连接 如果多条语句查询使用一条连接效率是高的 EmpManage.php 第三次改进:model1模式雇员分页 在管理页面显示登录成功的用户名 在登陆处理页面获得的用户名 要在empmanage.php页面得到用户名 现阶段解决办法是在登录处理界面得到用户名 通过跳转传到empmanage.php界面 Loginprocess.Php EmpManage.php 接收用户名 现要做一个雇员列表页面 当点击管理用户时跳到此处 Emplist.php 读取数据库 展示雇员列表 下面考虑分页显示我们的用户信息 至此empManage1.0结束 雇员管理系统 -分层模式【业务逻辑与界面分离】mv 测试数据量大时 是否可以满足用户相应快速需求 查询现在一共多少条记录 empList.php显示上一页下一页 指定跳转到某一页 一次跳转10页?? 现有代码modle1存在的问题: 每个页面都有数据库连接 如果密码修改将要修改多个页面,太麻烦,代码重复 Emplist.php显示雇员列表信息 还有分页逻辑 界面和业务逻辑混合 不利于修通开发 Model1改为分层模式 界面用php 业务逻辑层用类 类中封装业务操作 界面层其实是web层 包括视图和控制器 下面那一层是model 最下面是数据层 建立Admin.class.php Admin.Service.php Emp.class.php Emp.Service.php 工具类 SqlHelper.class.php 把连接表给掉了 修改如上 对数据库返回的结果集放到一个数组里面,这样可以立即释放结果集 在SqlHelper里面 execute_sql(); 方法中不能关闭连接 因为一个创建一个对象,可能要执行好几个sql语句 关闭后后面sql无法执行 现在的代码执行sql返回结果集没有释放 需改进 业务逻辑不对数据库进行操作 要释放资源 关闭连接 此处合法返回的是一个true 可以返回用户名或者直接是一个对象包含更多信息 此处修改登录处理界面 使用adminService.class.php里面写的验证进行调用 以下要做分层模式中的分页分离 因为是针对emp表数据的分页 所以应该在EmpService.class.php封装 需要看界面层需要什么 为完成分页 emplist.php 需要$pagecount $res 需要两个变量 如何返回 怎么在一个函数返回两个 先用连个函数返回两个结果,再合并 如果各种表都统一分页?? 界面调用该类的总共多少页函数的得到总共页数 此处之所以将释放资源和关闭连接注释掉是因为不能在此处做,因为释放掉后,界面就拿不到res 由于上面得到总页数关闭了连接,所以empService.class.php中当写分页函数时要重新new一个sqlHelper对象 以下是在雇员显示列表页面调用以上分页显示函数 在sqlHelper中dql语句中将资源放入数组,并释放资源,关闭连接在调用sqlHelper的类中 不在sqlHelper中,避免多次调用查询语句,还需建立多次连接 new多个sqlHelper 由于以上已经改成保存到数组,所以界面取结果也要换成数组读取方式 以下是整体分页 以下将分页封装通用 以上调用了两次函数 得到总页数和res结果 新建一个FenyePage.php 用于保存分页信息的类 、 以上第二个求总页数sql2执行没有释放资源 多了一个$ 对象属性赋值 以上操作完数据库没有进行关闭 sql多了一个where 以下将分页导航进行分装 要放到sqlHelper中 因为那个里面已经知道了fenyePage对象的所有信息 当然以上还有一个问题 就是连接指向的页面 也是写死了 以上对$navgate变量要放在外面声明一下 以上是empManage2.0版本实现了分层模式 将业务逻辑与界面分开 进行了分装 表的实体映射的对象主要用来保存数据 返回一个对象 MVC模式改进

文档评论(0)

1亿VIP精品文档

相关文档