- apache .htaccess 路径转发
- 配置基本路径
- 载入APPPATH.'bootstrap'.EXT;
- 载入核心类文件
- 设置生产环境
- 配置要开启的模块,(自己设置的模块写在BASEPATH.'/data/module.php')
- 载入模块的配置信息。
- require(APPPATH . 'route.php');//导入路由信息
- extract(Common::cache_config($sys_prefix, $sys_webid));//设置系统常用的配置
- Request::factory()//构建一个实例,已经包含,http相关信息、所用的路由、所对应的控制器与方法、参数
- 配置一个实例Request::$initial = $request = new Request($uri, $cache, $injected_routes)
- Request::factory()->execute()。运行
- $this->_client->execute($this);使用Kohana_Request_Client方法。
- $this->execute_request($request);具体由Kohana_Request_Client_Internal来实现
- $class = new ReflectionClass($prefix.$controller);使用反射类来调用具体控制器
- $class->getMethod('before')->invoke($controller);控制器前方法。
- Controller_Pc_Line-》before()。具体控制器前方法
- parent::before();调用Stourweb_Controller,其实并没有什么作用。
- 检查缓存。Common::cache('get', $this->_cache_key);
- $cache->get($key, '');调用缓存,实际会根据使用的驱动器具体的方法。Kohana_Cache_File
- Cache_File::filename($this->_sanitize_id($id));具体驱动器的获取文件名方法。
- $file = new SplFileInfo($directory.$filename);具体获得文件,默认有效期一个小时,超过一个小时就返回空,删除文件。
- 设置频道名。
- Controller_Pc_Line-》before()。具体控制器前方法
- $method->invoke($controller);控制器请求的方法
- 调用display方法。实际调用V5 Stourweb_Controller的display方法
- $class->getMethod('after')->invoke($controller);调用后方法。
注:print_r(get_included_files());//查看运行到打印行的所有载入文件,查看第90行附件,即可获知使用的控制器,根据控制器位置,可以找到相应的视图文件。