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

10月31日作业练习mvc的实现原理

varis_mobinavigator.userAgent.toLowerCase().match((ipod|iphone|android|coolpad|mmp|smartph

一、什么是MVC?

答: M:model(模型):

        V:view(视图):

        C:controller(控制器):

     

二、 新建一个入口文件 index.php

实例

//路由解析
   //路由赋值给变量
$server = $_SERVER;
$path_info = $_SERVER['PATH_INFO'];    
$script_name = $_SERVER['SCRIPT_NAME']; // /index.php
$request_url = $_SERVER['REQUEST_URI']; //index.php/home/index
$path = ltrim($path_info,'/'); //去掉左边的/
//解析Controller 和 method

$controller_method = explode('/',$path); //把路由地址按/去掉,然后变成数组
//ucfirst 把第一个字母变大写字母

$controller_method[0] = ucfirst($controller_method[0]); 
$controller = $controller_method[0];  //把路由数组 付给变量
$method = $controller_method[1];      //把路由数组 付给变量
require __DIR__. '/controller/'.$controller_method[0].'.php';  //引入控制器的脚本
$obj = new $controller();   //创建对象
$res = $obj->$method();     //执行控制里对象里的方法,赋值给变量
exit($res);   //结束,输出变量
?>


运行实例 »

点击 "运行实例" 按钮查看在线实例


三、 建立控制器:controller 文件夹,模型:model 文件夹, 视图:view文件夹,用于存放相关脚本文件。

实例

//创建一个类,里面有两两个方法!
class Home{
        //方法:输出 hello,mvc
public function index(){
echo 'hello MVC';
}
        //方法:连接到视图脚本
public function welcome(){
require __DIR__.'/../view/welcome.php';
}
}
?>


运行实例 »

点击 "运行实例" 按钮查看在线实例


2。视图脚本:视图脚本,输出文字,及当期时间! 最后被控制器引入,然后被当成控制器的方法输出!

实例








            //视图脚本,输出文字,及当期时间! 最后被控制器引入,然后被当成控制器的方法输出!
            
 welcome to liuzhou


 


运行实例 »

点击 "运行实例" 按钮查看在线实例


总结:老师你好,请看我的注释,我是这么理解的,还有模型没有做好,希望老师指导思想!






推荐阅读
  • 优化局域网SSH连接延迟问题的解决方案
    本文介绍了解决局域网内SSH连接到服务器时出现长时间等待问题的方法。通过调整配置和优化网络设置,可以显著缩短SSH连接的时间。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • 在寻找轻量级Ruby Web框架的过程中,您可能会遇到Sinatra和Ramaze。两者都以简洁、轻便著称,但它们之间存在一些关键区别。本文将探讨这些差异,并提供详细的分析,帮助您做出最佳选择。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 在前两篇文章中,我们探讨了 ControllerDescriptor 和 ActionDescriptor 这两个描述对象,分别对应控制器和操作方法。本文将基于 MVC3 源码进一步分析 ParameterDescriptor,即用于描述 Action 方法参数的对象,并详细介绍其工作原理。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 本文探讨了如何在 PHP 的 Eloquent ORM 中实现数据表之间的关联查询,并通过具体示例详细解释了如何将关联数据嵌入到查询结果中。这不仅提高了数据查询的效率,还简化了代码逻辑。 ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • 反向投影技术主要用于在大型输入图像中定位特定的小型模板图像。通过直方图对比,它能够识别出最匹配的区域或点,从而确定模板图像在输入图像中的位置。 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • Spring Boot 中静态资源映射详解
    本文深入探讨了 Spring Boot 如何简化 Web 应用中的静态资源管理,包括默认的静态资源映射规则、WebJars 的使用以及静态首页的处理方法。通过本文,您将了解如何高效地管理和引用静态资源。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
author-avatar
用户3w7mnpewca
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有