当前位置: 首页 > 后端技术 > PHP

手写PHPMVC(一)——MVC入门

时间:2023-03-29 20:34:15 PHP

受到两位大佬@张义春@仁风的影响,决定写一个简单的MVC源码,一年前尝试完成,分享给大家。MVC简介MVC是Model-View-Controller的缩写。它使用一种将业务逻辑、数据和页面显示分离的方法来组织代码并将业务逻辑聚集到一个组件中。与用户交互的页面可以不受业务逻辑限制。随时更改和切换。上图是一个MVC框架处理请求的过程。控制器接收请求并组织请求并将请求转发给模型。Model实现逻辑代码和数据交互,返回结果给Controller,Controller执行页面处理,返回结果给请求。MVC应该由什么组成?没有固定的答案,但以下是我期望实现的:接受请求、注册应用程序、定义常量等的入口文件(如index.php)自动加载注册插件自定义路由分发请求依赖注入容器配置服务errorlogservicesORMViewEngineCLICommandLineToolTestingToolAuthenticationVerificationService...框架介绍我将要实现的框架命名为origin。希望大家怀着初心出发,不忘初心。架构设计框架的总体结构,如图所示,关键模块架构图的最上层是三个模块,分别是分发器容器框。分发器的作用是进行全局管理,包括所有类的实例化操作,公共方法的定义等。容器和盒子是分发器的子类。它们的区别在于容器中的实例可以重复使用,每次都会重新创建盒子中的实例。容器就是一个存放东西的工具,比如$instance=[1,'1']这个$instance就是一个容器,当然对象和闭包函数也可以装在里面。准备工作我们在工作目录中创建一个名为origin的文件夹作为Framework名称。$mkdirorigin需要在origin中创建一系列目录来存放应用程序代码和框架本身的代码$cdorigin$mkdirappcorepublic$cdapp$mkdircontrollersmodelsviewsconf创建后目录结构为(使用tree命令)origin-app-conf-controllers-models-views-public-core文件夹app用来存放所有应用程序相关的代码,core用来存放框架本身的代码,public存放入口文件(比如作为index.php)和公共资源(如JS、CSS)。小结本节主要介绍MVC框架的概念和工作流程,以及一些开发规范和命名空间。创建一个origin目录作为框架名称,并在该目录下创建一些目录,用于隔离框架代码和应用程??序代码。下次见