热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP——MVC模式讲解与实例

本文基于MVC设计模式进行详细讲解及实例
一、 MVC模式流程图

命名规则:test(名字)Controller(控制器文件).class.php ( 类文件 )

  
 get();//模型按照指令取数据
            //按指令选择视图 实例化一个view的对象
            $testView  = new testView();
            //把取到的数据按用户的样子显示出来
            $testView -> display($data);
        }
    }
?>

2. testModel.class.php 模型类文件
命名规则:test(模型文件名称 )Model( 模型文件).class.php 类文件

3. testView.class.php 视图类文件

4. 单一入口文件

让他来调用控制器,而控制器去调用模型和视图

show();//调用方法
?>

5.运行结果

四、简单的MVC实例改进----方法封装

1. 封装一个实例化控制器等的对象和调用方法的函数

show();
        eval('$obj = new '.$name.'Controller();$obj->'.$method.'();');//把字符串转换为可执行的php语句
    }
    //封装一个实例化模型的对象和调用方法的函数
    function M($name){
        require_once('/libs/Model/'.$name.'Model.class.php');
        //$testModel = new testModel();
        eval('$obj = new '.$name.'Model();');//实例化
        return $obj;
    }
 
    //封装一个实例化视图的对象和调用方法的函数
    function V($name){
        require_once('/libs/View/'.$name.'View.class.php');
            //$testView  = new testView();
            eval('$obj = new '.$name.'View();');
            return $obj;
    }
 
    //为了安全性 ,过滤函数
    //addslashes对’,字符进行转义
    //get_magic_quotes_gpc()当前魔法符号的打开状态,打开返回true,
    function daddslashes($str){
        return (!get_magic_quotes_gpc() )? addslashes($str) : $str;
    }
?>

2.重新编写入口文件index.php

浏览器url访问形式 http://......index.php?cOntroller=控制器名&method=方法名

3.运行结果

浏览器访问 http://localhost:8080/MVC/index.php?cOntroller=test&method=show 显示hello world

想了解更多PHP相关问题请访问PHP中文网:PHP视频教程

以上就是PHP——MVC模式讲解与实例的详细内容,更多请关注 第一PHP社区 其它相关文章!


推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • MVC设计模式的介绍和演化过程
    本文介绍了MVC设计模式的基本概念和原理,以及在实际项目中的演化过程。通过分离视图、模型和控制器,实现了代码的解耦和重用,提高了项目的可维护性和可扩展性。详细讲解了分离视图、分离模型和分离控制器的具体步骤和规则,以及它们在项目中的应用。同时,还介绍了基础模型的封装和控制器的命名规则。该文章适合对MVC设计模式感兴趣的读者阅读和学习。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • Todayatworksomeonetriedtoconvincemethat:今天在工作中有人试图说服我:{$obj->getTableInfo()}isfine ... [详细]
  • 数据库锁的分类和应用
    本文介绍了数据库锁的分类和应用,包括并发控制中的读-读、写-写、读-写/写-读操作的问题,以及不同的锁类型和粒度分类。同时还介绍了死锁的产生和避免方法,并详细解释了MVCC的原理以及如何解决幻读的问题。最后,给出了一些使用数据库锁的实际场景和建议。 ... [详细]
  • ps:写的第一个,不足之处,欢迎拍砖---只是想用自己的方法一步步去实现一些框架看似高大上的小功能(比如说模型中的toArraytoJsonsetAtt ... [详细]
  • 夏侯惇在曹魏集团的地位及其重要性
    本文介绍了夏侯惇在曹魏集团中的地位及其重要性。夏侯惇虽然没有特别显赫的战绩,但是他是曹操最信任的军事将领。通过对夏侯惇生平经历的回顾,可以看出他在曹魏集团的重要地位。从曹魏集团的二号人物到裨将、司马等职位的担任,夏侯惇一直是曹操最亲信的人之一。夏侯惇的历史地位在曹魏集团中不可忽视。 ... [详细]
  • 本文详细介绍了PHP中与URL处理相关的三个函数:http_build_query、parse_str和查询字符串的解析。通过示例和语法说明,讲解了这些函数的使用方法和作用,帮助读者更好地理解和应用。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • 信息安全等级保护是指对国家秘密信息、法人和其他组织及公民的专有信息以及公开信息和存储、传输、处理这些信息的信息系统分等级实行安全保护,对信息系统中使用的信息安全产品实 ... [详细]
  • 无线认证设置故障排除方法及注意事项
    本文介绍了解决无线认证设置故障的方法和注意事项,包括检查无线路由器工作状态、关闭手机休眠状态下的网络设置、重启路由器、更改认证类型、恢复出厂设置和手机网络设置等。通过这些方法,可以解决无线认证设置可能出现的问题,确保无线网络正常连接和上网。同时,还提供了一些注意事项,以便用户在进行无线认证设置时能够正确操作。 ... [详细]
author-avatar
200355人
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有