版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MVC框架|1MVC开发最成设计模式,也是目前web开发中最常见的架构思想!其实,web架构目前大概已经经历了三种方式:MVC也就是PHP代码和HTML代码放到同一个文件中这种方式执行的效率是最高的但也HTMLPHPPHP逻辑文件,因为一定是先进行业务逻辑的处理,然后再进PHPhtmlHTML主要负责展示的功能,其中可变的数据是用动态PHP来填充!这样的一种混编文PHP代码通常只负责输出数据,而不负责处理数据!htmlphpecho,foreach、while!注意:用户不应该请求负责展示的模板文件!需要我们对模板文件隐!apache的分布式配置文件来完成!webMVCControllerControllerViewModel1,v2到v3,将模板 2stu.phpCMV都被控制器所调用,并且模MV之间不存在任何的交互!MVC123,后期项目的和升级变得非常容MVCMVC项目架构思想,指的的项目中代码间的组织关系,不决定语法形式,面向过程和面向MVC的架构思想!但是,MVC2讲模型类MVC着PHP项目开发中的一个模型类! v3v4StuModel.class.php:如果该还有其他的业务逻辑需要实现的话,只需要在模型类中增加相应的方法就行了!3 v4v5!4() v5v6!目前我们的一个控制器就对应着的一个功能(展示学生列表,但是,一个有很多5 v6v7stu2.php!后面还可以增加删除学生的操作(动作stu_c.php就可以删除了!StuControllerlistAction上面的上面的index.php从MVC的角度就叫作前端控制器,也叫 文件a!6actionindex.phpa a参数代表当前所执行的动作! v7v8!所以,从功能的角度看,index.phpController7controllerindex.phpc参数,表示当前所需要执行的控制类的类c v8v9:()前面的StuController控制器类中的两个动作以及TeaController中的list动作都使用到了header函数,正如所有模型的公共代码应该放在基础模型类一样,我们也应该把所有控制8 v9v10!header所以,index.php也叫作单文件,这种模式也叫作单模式第9 v10v11!框架代码:在各个应用程序之间可以通用的代码,比如以前bbs中的core 所以,需要分别创建两个所以,需要分别创建两个 进 也可以 的名称进行简化所以,上面的测试代码中属于框架代码的移动到 下 文件放 文件放 的 平台tform的概念与划module系列的功能!一般前台用于展示,用于管理!我们平时所说的前台和的时候其实是指美工和程序所以,应该在 下再创建两个 其中前台也可以叫作Front,也可以叫作Test!MVC各个平台之间应该是相对独立的,而各个平台的功能又是是由MVC来完成的,所以,我们应该为每一个平台都创建三个MVC子 Test平台也应用有MVC的划分,并将之前的代码放到合适的 里面 index.php/文App/MySQLDB.class.php/数据库操作类|dao1index.php目前是单程序,所有的相对地址,都是相当于文件index.php而言的4StuModel.class.php5Model.class.php第10讲平台tform的分发参数再比如,以后用户的: v11v12:index.phpppp:平台()a:动作(方法111,框架类(已经确定好了2(可以增加3(可以增加1ControllerModelModel下进行载 v12v13!先一个一个的删除,再先一个一个的删除,再 试第12讲定 v13v14! 1index.php2StuController13分析一下目 文件index.php的特点12(还是面向过程 这样一来,文件就变得非常简单,轻量14 v14v15! v14v15!第一步:在App 下创建Config 并创建conf.php1model.class.php215MySQLDBPDODB类,让二者都实现(implements) 下创建dao 要注意需要修 常量 MySQLDB 16 v16v17!Smarty是属于外部提供的功能(插件,我们一般的做法是将其放到一个专门的 可以命名为Vendor,也可以叫作Tools! ,Smarty Smarty中常用的两个方法是:disy:输出模StuController回答:因为我们还没有为Smarty设置默认的模 1,为了方便管理,将视图按照所属的控制器再次进行分类,就是在视图View 另外,Smarty默认的编译 是temtes_c,所有的编译文件都在里面,比较,而且 跟各个平台下的 一样也可以使用控制器作为 这样一来,就每次就可以直接使用$this->assign()和$this->disy()两个方法了17::1234hostsDNS1,v17到blog 下2AppTest3config 下创建 子然后,前台 可以存放各自的然后,前台 可以存放各自的css,image和js文件 然后css和js和 的常量应该等当前经确定之后再定义除了 和文件index.php之外,其余 的内容都不应该被直接到可以在各 下设置.htaccess文件第18讲项目应用二:实现登录功究竟先开发前台还是先开究竟先开发前台还是先开 主要看数据的来源是台还是在跳转跳转 第二步:在后台 目录下创Model第三步:在 下创建 ,创建login.htmlname属性的值与数据库中的字段名保持一第八步:在Model下创建19由于前台和的很多地方都需要跳转,所以应该在基础控制器Controller里面完成3Controllerjump可以暂时创可以暂时创 管理平台控制器第20讲项目应用四:封装 在真实的项目中,可以作为外部的插件直接引入,所以这里可以将类放 ,,第21讲项目应用五:完善登录功主要就是把功能增加进来由于在很多地方都需要判断是否合法,所以,可以单独的封装一个方法AdminControllercheckAction增加22此时,我们遇到了一个问题,如果用户不经过登录页面,直接 所以,为了解决用户行为,需要增加相关验证1session中保存了用户的相关信息,所以可以判断有没有用session数据!2除了首页不需要验证,的其他所有页面都需要验证3才需要验证管理员是否登录,但是前台不需要! 其中,平台控制器又可以分成前台的平台控制器和的平台控制器! 的其他控制器应该继承自上面的的平台控制器 tformController中增加判断管理员是否登录要验证的,比如:登录页面、生成、验证是否登录、找回等!checkLogin23SQL用户名:’or1#8SQL的行为作出了的影响,就叫作SQL注入!sqlselect*frombg_adminwhereadmin_name='zhouyang'and sqlselect*frombg_adminwhereadmin_name=''or1#'and由于#sqlSQLselect*frombg_adminwhereadmin_name=''or很显然,上面执行的结果就是where后面的条件为真!其实就相当于select*frombg_adminsql‘or1orselect*frombg_adminwhereadmin_name=''or1or''andSQL2SQL注入的危害非常之大,有时候甚至可以删除服务器上的整个数据库:用户名为:or1;dropdatabase(2PHPaddslashes(最常用3MySQL提供的数据转义函数:mysql_real_escape_string($data,$link);不过有一个4sqlAdminControllerController第24讲项目应用八:完善首页显由于该视图是在Manage控制器下调用的,所以应该放在View下的 下 1,将模板文件index.html进2css、jsimages,,用户登录成功之后,是应该先将用户的信息放入session数据区中还是先更新管理员的信1就行了!第25讲项目应用九:完成注销功26父类(上一级类)id号,如果该分类是一级分类(主类别pid0! MySQLDB.class.phpMySQLDB.class.phptest第27(上1,在View下创建Public,创建2Manageindex.html的公共代码提取出来,存public.html第二步:在后台 下创建 目录,创第三步:在后台 目录下创1Categoryindex.html2CategoryaddAction3,在 下创建4,模板文件Cate_add.html的代码进第28(下add2, 创建2, 创建3add.html4add.htmlname基本策略:3add.html29dealAdd12add动作CategoryModelinsertCate 30id add.html add.htmledit.htmledit.html1action2valueif34dealAddAction31action!2name321,模板文件到2333ArticleaddAction1,模板文件到23formactionenctype4name53435ArticleModelgetArticle36由于上传类是属于类文件,所以应该放在 下 子 第37讲编辑器Ckeditor概、编辑器也叫作富文本编辑器,是一种通过浏览器来对文字、音频和等富文本进行编辑的一种工具,通常也就是指HTML编辑器!、为什么要为什么要 编辑器其实,即使没有编辑器,我们也可以利用html对相关的内容进行排版和显示,但fckeditor,开源并且免费!目前,fckeditorckeditor(文本编辑器,免费)ckfinder(文件管理器,此外,目前使用的较多的还此外,目前使用的较多的还 编辑器38Ckeditor CkeditorCkeditor属于外部的插件,可以放在Vendor 下,但是由于编辑器一般只有才使用,所以更常见的做法是放在下!在下创建 由于编辑器需要直接被用户到,所以我们可以在 下创建一个Public此外,再Ckfinder进来,需要和Ckeditor处于同 CkeditortestCkeditorCkeditor1,引入Ckeditor文2,定义textarea,并且规定其class的值必须为ckeditor!另外,name属性也必须存 这种方式是最简单的,但是固定了class属性的值,不方便编辑器的配置1,引入ckeditor文件2,定义textarea并定义name属性和id属其中,id3,使用CKEDITOR.rece()方法进行编辑器的替换操注意:其中rece的参数必须是textarea中id属性的值!Jquery适配器引入文本编辑器(省略)Ckeditor常见的,Ckeditor很显然这种配置方式的特点是对整个项目的编辑器都有效也就是一改全改不推荐所谓的自定义配置文件,其实就是在config.js主配置文件的基础之上进行修改,比如1,将config.js还原 2也就是说,当没有给引入的编辑器指定配置文件的时候,默认使用config.js,如果需要更改,此时,就需要使用CKEDITOR.re ce的第二个参数: ck2.html:39Ckfinder ,此时可以在config.js入也可以在用户自定义myconfig.js入,关键是取决于Ckeditor的配置文件!,myconfig.js此时,点击编 的按钮时,就出现了文件此时,点击编 的按钮时,就出现了文件 能是因为从安全的角度,CkfinderCkfinderconfig.php配置文件中开启文件此时,默认的上传 创建ckfinder 比如,在test测 config.php再次上再次上 防止用户上传重复的名字以造成文件的覆盖(Ckfinder不会覆盖1,在 下的FileUpload.php中增加一个产生随机文件名的方法2 一 存放所有的文件,比较乱,不好,最好按年与 分开config.php默认情况下,Ckfinder允许用户任意的删除、修改、创建相关 发中是相当不安全的,所以必须加以!config.php第40讲项目应用二十:整合编辑第一步:Ckeditor和Ckfinder到 Ckeditor第六步:上面 下的config.php到项目中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 轧管工岗前安全生产基础知识考核试卷含答案
- 母婴护理员岗位常识考核试卷含答案
- 山石盆景工岗位规章考核试卷含答案
- 工业车辆维修工岗中节能考核试卷含答案
- T∕CWAN 0177-2025 焊接工艺大模型输出规范与设备接口标准
- 2026年工业机器人应用开发工程师试题及答案
- 2026年智能交通系统智能交通公共道路测试工程师资格考试试题及答案
- 云南省红河哈尼族彝族自治州泸西县2027届九年级数学第一学期期末质量检测试题含解析
- 利用互联网技术实现森林资源动态监测方法研究
- 第七章国民收入决定理论:简单凯恩斯模型
- 间质性肺炎患者护理
- 秋冬季老年人防病保健
- 反诈知识竞赛题库及答案(共286题)
- 建筑电气线路绝缘电阻、接地电阻检测技术规程
- 油漆购销合同范本
- 浙江省城镇净水厂安全运行管理规范
- DZ∕T 0305-2017 天然场音频大地电磁法技术规程(正式版)
- 酒店客房样板间装修验收记录表
- 设计速写(室内设计和环境艺术设计专业)全套教学课件
- 《孙周兴:艺术哲学美是如何诞生的》2021-2022超星尔雅课后测试答案
- 湖南单招信息技术基础知识题库及答案
评论
0/150
提交评论