受到两位大佬的影响 @章亦春 @仁风,决定写一个简单的MVC源码,争取在年前写完分享给你们。
MVC 是 Model-View-Controller 的简称,用一种业务逻辑、数据、页面显示分离的方法组织代码,将业务逻辑汇集到一个部件里面,与用户交互的页面能够不受业务逻辑限制,可随时更改和切换。
上图是一个 MVC 框架处理请求的流程,Controller 接收请求,并组织转发请求到 Model,Model 实现逻辑代码和数据交互,返回结果给 Controller,Controller 执行页面处理并返回结果给请求。php
没有固定答案,但如下内容是我预计要实现的:linux
我把要实现的框架命名为 origin
,但愿各位带着初心出发 之后牛逼了别忘了 origin
。laravel
框架的大体结构,如图所示架构
架构图的最顶部有三个模块,分别是mvc
分发器的做用是,进行全局管理,包括全部类的实例化操做,公共方法的定义等,容器和盒子是分发器的子类,它们的区别在于,容器中的实例能够重复利用,盒子中的实例每次会从新建立。 app
容器就是 laravel
每天吹的容器框架
咱们在工做目录下建立一个名为 origin
的文件夹做为框架名称。工具
$ mkdir origin
在 origin
中须要建立一系列目录用来存放应用代码和框架自己的代码测试
$ cd origin $ mkdir app core public $ cd app $ mkdir controllers models views conf
建立好后目录结构为(使用 tree
命令)spa
origin - app - conf - controllers - models - views - public - core
其中文件夹 app
用来存放全部与应用相关的代码,core
用来存放框架自己的代码,public
存放入口文件(如 index.php)和公共资源(如 JS,CSS)。
本结主要介绍了 MVC 框架的概念和工做流程,以及一些开发规范和命名空间。建立了一个 origin
的目录做为框架名称,并在该目录下建立了一些目录用于框架代码和应用代码的隔离。
下期见