• php_mvc实现步骤八


    shop34-10-框架类

    框架类(框架初始化类)

    原来入文件中功能,放在该类中完成,入口文件变得简单,轻量!

    入口文件中的各个功能,由框架的各个方法,完成:

    为了简单化,使用纯静态的类。(成功能的集合)

    此时入口文件:

    shop34-11-配置文件系统

    配置文件

    application目录中,增加一个子目录config用于管理项目中所出现的配置文件:

    设计,配置文件存储数据的格式:

    配置进行分组管理

    初始化项目时,载入该配置文件,获取配置信息

    框架类中,增加载入配置的操作:

    初始化完路径常量后,就可以完成对配置的初始化:

    使用配置完成:

    分发参数:

    数据库服务器信息:

    Model

    SessionDB

    shop34-12-防止SQL注入

    项目中添加防止SQL注入的代码

    MySQLDB中,添加一个可以完成转的方法,在模型中,需要时调用!

    项目中使用,AdminModel中,完成转换:

    为了避免,整型数据可能不被SQL中增加引号,强制转换后的数据使用引号包裹;

    拼凑SQL的数据不需要增加引号:

    Tip:

    PHP魔术引号(magic quotes,PHP自动为请求数据GETPOST)增加转义的一种防止SQL注入机制。

    shop34-13-DAO层抽取

    项目中对PDO的使用

    使用PDO,实现与mysqlDB这个DAO对象外部操作一致另外一种DAO实现,可以做到,模型切换DAO,是不需要更改模型内的任何代码(热插拔,无缝切换)

    增加DAO的操作接口I_DAO,使所有DAO定义mysql扩展,PDO扩展)实现相同DAO操作接口I_DAO

    shop34-14-后台首页展示

    后台首页功能

    主体功能

    框架集布局,各个框架中,都需要请求项目的某个功能动作,完成最终的展示!

    Back/ManageController->indexAction()

    完成后台模index.html

    各个frame功能

    实现对应的视图模板:

    shop34-15-平台控制器-集中验证

    后台公共登录验证平台控制器

    后台不仅Manage->indexaction()需要登录验证,而且其他动作需要登录验证。

    操作属于当前平台后台的公共控制器功能。

    增加后台的平台控制器,完成相应验证工作:

    平台中其他的控制器,都继承自平台控制器:

    将验证登录操作,移动到PlatformController

    实现:

    调用时机:

    实例化后台控制器对象的时候(构造方法执行时):

    测试:

    发现,已经可以验证未登录,并跳转到登录,但是登录页面没有正常加载:

    Why

    请求adminlogin时,也要判断是否登录,没有由跳转到adminlogin,导致死循环。

    可见:后台的绝大多数的动作都需要登录验证后在执行,但是存在特例:登录相关,找回密码之类。

    应该判断是否登录时,如果是特例动作则不判断:

    如何判断特例?

    由于开启session在公共的位置,后台的动作中,就不需要再次开启session了:

    adminController->checkAction()

  • 相关阅读:
    struts2通过配置文件进行数据校验无效
    几个windows使用小技巧
    让程序员抓狂的排序算法教学视频
    关于js中使用close方法无法关闭firefox浏览器
    JavaScript基础
    最全的Java面试宝典
    cookie注入
    Google搜索技巧
    Java之多态
    Winform之GDI绘制验证码
  • 原文地址:https://www.cnblogs.com/ybygb-geng/p/9913337.html
Copyright © 2020-2023  润新知