Minor【 PHP框架】2.第一个应用与请求的生命周期
框架Github地址:github.com/Orlion/Minor
(如果觉得还不错给个star哦(^-^)V)
框架作者: Orlion
知乎:https://www.zhihu.com/people/orlion
Github: https://github.com/Orlion
在app/Config/routes.php文件中添加如下配置:
return [ ... '/helloworld' => [ 'name' => 'helloworld', 'controller' => 'App\Modules\Demo\Controller\HelloController', 'action' => 'hello' ], ];
这样配置之后当我们在浏览器中访问http://xxx.xxx.xxx/helloworld时就会执行App\Modules\Demo\Controller\HelloController里的hello方法
在app/Modules文件夹下创建文件夹: Demo/Controller/,然后创建文件HelloController.php,然后在文件中写:
<?php namespace App\Modules\Demo\Controller; use Minor\Controller\Controller; class HelloController extends Controller { public function hello() {
return View::render('Demo:Hello:hello.php', ['name' => 'World']); } }
在app/Modules/Demo/文件夹下创建文件夹/Tpl/Hello/然后创建hello.php:
Hello <?= $name?>
然后在浏览器中访问:http://xxx.xxx.xxx/helloworld就可以看到Hello World了
发送给应用程序的所有请求都经由 public/index.php
脚本处理。如果使用的是 Apache 服务器,Minor中包含的 .htaccess
文件将对所有请求进行处理并传递给 index.php
。这是Minor从接受客户端请求到返回响应给客户端的整个过程的开始。
当进入indx.php,首先会通过应用配置$config、服务提供者配置$providers、路由配置$routes、事件配置$events来创建一个Minor\Framework\App对象。在App类的构造函数中会通过$config数组初始化Minor\Config\Config用来对应用的配置进行管理,通过$providers数组初始化服务容器对象:Minor\Ioc\ServiceContainer用来对应用中的服务提供者进行管理,通过$routes数组创建一个Minor\Route\Router路由对象,通过$events数组来初始化Minor\Event\EventManager用来对事件进行管理。
当初始化完成App后,就会通过执行App的handle(MinorRequest $minorRequest)方法来对请求作出处理,处理的过程就是首先通过路由(Router)的from($url)方法解析出请求的控制器和方法,然后执行控制器的方法最后返回一个MinorResponse响应对象。
最后一步就是通过MinorResponse对象的send()方法将MinorResponse对象发送给请求的客户端。整个请求的生命周期过程就是这样。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步