在 QeePHP 应用中,启动 MVC 模式需要经过一系列的操作,了解这个过程可以帮助我们更好的使用 QeePHP。
QeePHP 启动 MVC 模式的主要步骤:
QeePHP 启动 MVC 模式的主要步骤
下面根据上图依次说明各个步骤载入的文件,以及文件的用途和主要功能。
首先,所有的请求都会发送到一个特殊的 PHP 脚本文件。这个文件被称为“入口”。新建好的应用程序在 app 目录或根目录中有一个名为 index.php 的文件,这个文件就是“入口”。
“入口”的代码很少:
//载入QeePHP require _INDEX_DIR_.'/../library/q.php'; //载入应用对象 require _INDEX_DIR_.'/_code/myapp.php'; //进入 MVC $ret = MyApp::instance(_INDEX_DIR_.'/_code/_config')->dispatching(); if (is_string($ret)) echo $ret;
这个文件要做的事情就和代码中的注释一样,非常简单。
在前面的 index.php 入口文件中,通过 MyApp::instance() 这样的调用构造了一个 MyApp 类的对象实例。这个对象就是应用程序对象,定义在 app/myapp.php 文件中。
应用程序对象封装了整个应用程序需要的一些公共服务,例如检查当前访问用户的身份、检查访问权限等等。
主要功能:
应用程序对象提供的基础服务:
在大部分 PHP 框架中,上述服务都被放到了框架中,但这是一种相当错误的做法。
虽然应用程序对象的功能几乎每一个应用都需要,但是许多应用在具体要求上都有区别。如果这些功能被放在框架中,框架设计者不得不留出接口来让开发者处理额外的情况,这不但会导致框架变得复杂臃肿,还增加了开发者的定制难度。而 QeePHP 将应用程序对象完全开放给开发者,让开发者可以按照自己的需求 100% 的定制。这种做法既避免了框架变得复杂,又降低了开发者的定制难度。
应用程序对象构造后,调用了该对象的 dispatching() 方法。这个方法内容按照如下的流程真正启动 MVC 模式:
应用程序对象如何解析请求,并调用控制器
我们一般不需要修改里面的流程,当控制器被调用时,MVC 模式就完成了启动工作,接下来就是控制器和视图的交互,以及将操作结果返回给浏览器。