zoukankan      html  css  js  c++  java
  • 框架执行顺序

    使用设计模式是为了,高内聚低耦合

    耦合度是,如果代码都黏在一起了,牵一发而动全身,写代码不希望这样。经常需要改代码。尽可能的降低耦合度。

    单例模式  配置类  session类 db类 缓存类

    TP5.1  index.php  laravel也是这样的,原理一样的

    loader 注册类,自动加载机制,记载composer 和 think的基础类 通过IOC容器绑定单例

    然后通过Container 容器类,执行IOC容器类

     

     

     get方法,根据类名获取类,然后执行软方法

    通过注册器,注册类。调用方法

     框架的核心内容就是容器

    门面设计模式 

    通过静态方法调用类的方法,__callstatic()

    检查容器中是否有实例,如果有实例调用实例的方法,如果没有就通过容器的方式创建进行实例化,并调用。

     call_user_func_array()

    把第一个参数作为回调函数(callback)调用,把参数数组作(param_arr)为回调函数的的参数传入。

    总结

    Facade-->获取对应的类库-->调用facade的callstatic方法--->createFacade调用容器,有容器调用。没有容器:创建,存储实例,调用实例类库的方法

    框架执行流程

    当一入口文件index.php

    加载基类文件basre.php  

    加载loader 文件,框架的灵魂。类的自动加载

    不管什么框架第一步都是类的自动加载  spl_autoload_register

    自身类加载think triaits  和 composer加载不同的文件加载

    显示已加载所有的类,设置别名,并找到别名和类的映射关系

    注册到注册树中去

    然后在容器中获取app实例,并执行run方法。执行应用程序

    初始化应用init 

    监听app init

    相关绑定

    监听 app_dispatch

    路由检测

    记录当前调度信息

    监听app_begin

    执行路由调度

    中间件调度

    监听app_end

    send();

  • 相关阅读:
    《梦断代码》随笔第1篇
    四则运算3
    1、软件工程结对开发之求一维数组中连续最大子数组之和
    四则运算2单元测试
    《梦断代码》随笔第0篇
    四则运算2完整版
    四则运算2设计思想
    软件工程第一个程序
    软件工程阅读计划
    电梯调度之需求分析
  • 原文地址:https://www.cnblogs.com/zhaoyang-1989/p/13277081.html
Copyright © 2011-2022 走看看