ThinkPHP5、Swoole、 Laravel、,Phalcon,并理解其生命周期

ThinkPHP5

1、入口文件
    虚拟主机目录/public/index.php
2、引入启动文件
    虚拟主机目录/thinkphp/start.php
3、运行App下面的run方法
    虚拟主机目录/thinkphp/library/think/App.php -> run()
4、实例化$request对象
    虚拟主机目录/thinkphp/library/think/App.php -> Request::instance(); 
5、进行路由检测
    虚拟主机目录/thinkphp/library/think/App.php -> self::routeCheck($request, $config); 
6、执行exec方法
    虚拟主机目录/thinkphp/library/think/App.php -> self::exec($dispatch, $config); 
7、根据dispatch数组里面的type类型打开相对应的控制器
    虚拟主机目录/thinkphp/library/think/App.php -> self::module($result, $config, $convert = null); 
8、调用Loader::controller通过反射机制加载控制器对象
    虚拟主机目录/thinkphp/library/think/App.php -> Loader::controller(...); 
9、调用请求方法invokeMethod($method, $vars = [])
        虚拟主机目录/thinkphp/library/think/App.php -> self::invokeMethod(...);
        
10、调用$response对象中的send方法把数据输出浏览器中
        虚拟主机目录/thinkphp/library/think/Response.php -> send(); 
        

Swoole Server 四层生命周期

  • 程序全局期:

    • Server->start 之前创建的对象资源,持续驻留内存,worker共享。
    • 全局期代码在 Server 结束时才会释放,reload 无效。
  • 进程全局期:

    • Server 启动后创建多个进程,它们内存空间独立,非共享内存。
    • worker 进程启动后(onWorkerStart)引入的代码在进程存活期有效,reload 会重新加载。
  • 会话期:

    • 在 onConnect 或 第一次onReceive 时创建,onClose 时销毁。
    • 客户端连接后创建的对象会常驻内存,直到此客户端离开才销毁。
  • 请求期:

    • 在 onReceive/onRequest 收到请求开始,直到发送 Response 返回。
    • 请求期创建的对象会在请求完成后销毁,和 fpm 程序中的对象一样。



Laravel

生命周期

  • 1.Web 服务器将请求发送到项目的 public/index.php 文件。

  • 2.PHP 解释器接收到请求后,解释执行 index.php 文件中的 PHP 代码。此时,由 Componser 包管理器生成的自动加载文件被加载。

  • 3.创建Laravel 服务容器实例,引导安装 laravel 组件。

  • 4.HTTP 或 Console 内核接收到 HTTP 请求,加载 Laravel 服务提供者,同时,将请求分发给路由器执行。

  • 5.路由器将渲染视图文件,并生成响应数据给 Web 服务器。

laravel的重点

  • laravel5之前成为IoC(Inversion of Control /ɪnˈvɜːrʒn/)、
  • 依赖注入(Dependency Injection /dɪˈpendənsi/ /ɪnˈdʒekʃn/ )
  • 反射解决方案 ReflectionClass (/rɪˈflekʃn/ )反射是一种在运行时检查类和方法的能力,递归查找类以及类的依赖。
  • 契约即接口interface,接口实际上并不做任何事情,只是类的模版
  • 服务提供者providers,注册服务到容器中的
  • 框架目录,主要目的是分层:
    • 事件监听器、错误处理器、请求验证器
  • 队列处理器、路由过滤器、用户认证、缓存和会话驱动
  • 设计模式
    • 单一职责原则
      一个类的边界和职责应当是十分狭窄且集中的
    • 开放封闭原则
      又称开闭原则,规定代码对扩展是开放的,对修改是封闭的
    • 里氏替换原则
      规定对象可以被其子类的实例所替换,并且不会影响到程序的正确性
    • 接口隔离原则
      不应该强制接口的实现依赖于它不使用的方法
    • 依赖反转原则
      它规定高层次的代码不应该依赖低层级的代码

Phalcon

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值