• Minor【 PHP框架】2.第一个应用与请求的生命周期


    框架Github地址:github.com/Orlion/Minor

    (如果觉得还不错给个star哦(^-^)V)

    框架作者: Orlion

    知乎:https://www.zhihu.com/people/orlion

    Github: https://github.com/Orlion

    2.1 Hello World

      2.1.1 配置路由

      在app/Config/routes.php文件中添加如下配置:

    return [
       ...
        '/helloworld'            =>  [
            'name'                =>    'helloworld',
            'controller'        =>    'AppModulesDemoControllerHelloController',
            'action'            =>    'hello'
        ],
    ];

      这样配置之后当我们在浏览器中访问http://xxx.xxx.xxx/helloworld时就会执行AppModulesDemoControllerHelloController里的hello方法

      2.1.2 创建控制器

      在app/Modules文件夹下创建文件夹: Demo/Controller/,然后创建文件HelloController.php,然后在文件中写:

    <?php
    namespace AppModulesDemoController;
    use MinorControllerController;
    class HelloController extends Controller
    {
        public function hello()
        {
      
        return View::render('Demo:Hello:hello.php', ['name' => 'World']); } }

      2.1.3 创建视图文件

      在app/Modules/Demo/文件夹下创建文件夹/Tpl/Hello/然后创建hello.php:

    Hello <?= $name?>

      然后在浏览器中访问:http://xxx.xxx.xxx/helloworld就可以看到Hello World了

    2.2 请求的生命周期

      发送给应用程序的所有请求都经由 public/index.php 脚本处理。如果使用的是 Apache 服务器,Minor中包含的 .htaccess 文件将对所有请求进行处理并传递给 index.php。这是Minor从接受客户端请求到返回响应给客户端的整个过程的开始。

      当进入indx.php,首先会通过应用配置$config、服务提供者配置$providers、路由配置$routes、事件配置$events来创建一个MinorFrameworkApp对象。在App类的构造函数中会通过$config数组初始化MinorConfigConfig用来对应用的配置进行管理,通过$providers数组初始化服务容器对象:MinorIocServiceContainer用来对应用中的服务提供者进行管理,通过$routes数组创建一个MinorRouteRouter路由对象,通过$events数组来初始化MinorEventEventManager用来对事件进行管理。

      当初始化完成App后,就会通过执行App的handle(MinorRequest $minorRequest)方法来对请求作出处理,处理的过程就是首先通过路由(Router)的from($url)方法解析出请求的控制器和方法,然后执行控制器的方法最后返回一个MinorResponse响应对象。

      最后一步就是通过MinorResponse对象的send()方法将MinorResponse对象发送给请求的客户端。整个请求的生命周期过程就是这样。

  • 相关阅读:
    Open vSwitch使用案例扩展实验
    hdoj-1233-还是畅通工程
    DS实验题 Floyd最短路径 & Prim最小生成树
    DS实验题 Missile
    Mininet实验 基于Mininet实现BGP路径挟持攻击实验
    Gift for GS5
    Bellman-Ford算法
    pox目录中的交换机mac地址学习模块 l2_multi源码
    Mininet实验 使用l2_multi模块寻找最短路径实验
    Ubuntu安装Flash
  • 原文地址:https://www.cnblogs.com/orlion/p/5588945.html
Copyright © 2020-2023  润新知