思途程序分析

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

 

注:print_r(get_included_files());//查看运行到打印行的所有载入文件,查看第90行附件,即可获知使用的控制器,根据控制器位置,可以找到相应的视图文件。

转载于:https://my.oschina.net/u/3704021/blog/1578218

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值