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

原文地址:https://www.cnblogs.com/orlion/p/5588945.html