###### 我眼中的MVC #### MVC MVC(即模型Model、控制器Controller、视图View),模型用于操控数据库,简化数据库操作,控制器用代码,通过模型类访问数据库并拿到数据,将其进行处理后传递给视图,视图用于显示网页,将控制器传递来的数据经过html、css美化后显示在网页中。 我认为,对于一个网站,核心是url(网址),网址是网站的灵魂,每一次的访问,都要通过url来进行,所以PHP拿到一个网址后,首先要做的就是解析url,从网址中解析出模块名,控制器名和方法名,然后通过模块名和控制器名在真实的路径中查找到这个控制器类所在的路径,并将其include进来,实例化后执行方法。 综上所述,结合上一章的TP执行流程,我觉得必须的步骤有几个: 比如说对于一个网址:www.example.com/index.php?m=Index&c=IndexController&a=index&params1=abc&params2=2 1.当访问这个网址时,首先经过单入口文件index.php: index.php中将引入核心文件core.php 2.core.php 1.定义所有系统常量,脚本执行的所有路径、是否是调试模式、系统应用目录、控制器类后缀名 2.引入配置文件 3.引入系统函数库 4.引入系统核心执行类App 5.执行App类的run()函数 3.App类以及run函数 1.run函数 1.设置字符集 2.系统类映射 3.自动加载注册方法 4.实例化路由类:new Route() 2.App类中的其他函数就是1.中提到的设置字符集,类映射,自动加载注册的自定义方法 4.实例化路由 1. 实例化路由类后,会自动执行构造函数: 1.构造函数会执行URL解析函数,从当前URL中获得模块名,控制器名和方法名 2.解析后执行的一个函数,用于实例化控制器类,并调用解析出来的方法 2.路由类中的其他函数: 1.url解析函数 2.控制器类实例化及调用函数 这样,就把TP的执行流程精简了。现在框架的执行流程介绍完了,接下来就要按照这个流程来写框架了,为了方便,我给自己的MVC框架起名为S,为了让框架结构更加清晰,我先创建出了框架的目录结构如下: ![](https://box.kancloud.cn/e2d6fa69e191a89db5f44e44d19b1b5a_360x655.png) 下一章将要介绍目录结构和一些准备工作,将正式开始制作框架啦~