zoukankan      html  css  js  c++  java
  • 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对象发送给请求的客户端。整个请求的生命周期过程就是这样。

  • 相关阅读:
    杭电 Problem
    杭电Problem 5053 the sum of cube 【数学公式】
    杭电 Problem 2089 不要62 【打表】
    杭电 Problem 4548 美素数【打表】
    杭电 Problem 2008 分拆素数和 【打表】
    杭电 Problem 1722 Cake 【gcd】
    杭电 Problem 2187 悼念512汶川大地震遇难同胞——老人是真饿了【贪心】
    杭电Problem 1872 稳定排序
    杭电 Problem 1753 大明A+B
    东北林业大 564 汉诺塔
  • 原文地址:https://www.cnblogs.com/orlion/p/5588945.html
Copyright © 2011-2022 走看看