zoukankan      html  css  js  c++  java
  • cakephp加载流程

    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处理输出

    这一段着实不懂呢

  • 相关阅读:
    春秋战国时期灭了三个国家的陈国女人
    学历史有什么用?
    真正的奴才韩非
    深度学习的历史
    深度学习三十年
    图算法
    几种常见的查找算法
    数据结构之基于堆的优先队列
    几种常见的排序算法
    数据结构(背包、队列和栈)
  • 原文地址:https://www.cnblogs.com/linksgo2011/p/2937540.html
Copyright © 2011-2022 走看看