1、首先要定义下app/web_root/为虚拟主机的根目录
2、如果不是也会请求到那个文件,所以web_root就是入口文件
入口文件定义了全局变量,定义了很多路径相关的信息,比如
web_root
app
css
这里实在是太多了
3、加载三个文件
require CAKE . 'basics.php';require CAKE . 'Core' . DS . 'App.php';require CAKE . 'Error' . DS . 'exceptions.php';
然后定义了home_url
FULL_BASE_URL
app类设置为自动加载
然后加载一些组建
spl_autoload_register(array('App', 'load'));App::uses('ErrorHandler', 'Error');App::uses('Configure', 'Core');App::uses('CakePlugin', 'Core');App::uses('Cache', 'Cache');App::uses('Object', 'Core');App::uses('Multibyte', 'I18n');App::$bootstrapping = true;Configure::bootstrap(isset($boot) ? $boot : true);
这里需要注意的是,basics.php
这不是一个类,这是一个全局的方法包括config debuger h pr等一些方法
在bootstrap中也定义了很多的全局方法
然后开始启用调度器,和路由,同时初始化了request 和 response
App::uses('Dispatcher', 'Routing');$Dispatcher = new Dispatcher();$Dispatcher->dispatch( new CakeRequest(), new CakeResponse());
4、去看看调度器类
开始调度
App::uses('Router', 'Routing');App::uses('CakeRequest', 'Network');App::uses('CakeResponse', 'Network');App::uses('Controller', 'Controller');App::uses('Scaffold', 'Controller');App::uses('View', 'View');App::uses('Debugger', 'Utility');App::uses('CakeEvent', 'Event');App::uses('CakeEventManager', 'Event');App::uses('CakeEventListener', 'Event');
加载了这么多东西
5、初始化控制器
传入request
调用controller的处理方法
调用response处理输出
这一段着实不懂呢