ikkez / f3-middleware
PHP Fat-Free Framework 的中间件路由插件
v1.1.3
2019-03-11 09:09 UTC
This package is auto-updated.
Last update: 2024-09-12 03:56:16 UTC
README
中间件路由
这是一个针对 PHP Fat-Free-Framework,版本 3.x 的中间件路由器
它基于 F3 核心路由器,可以在主路由周期之前或之后独立调用。如果您想钩入其他路由组并想在处理主路由处理程序之前做些事情,这可能很有用。
安装
-
方法 1: 使用 composer composer require ikkez/f3-middleware
-
方法 2: 将
middleware.php
文件复制到您的 F3lib/
目录或其他已知于 AUTOLOADER 的目录
使用示例
$f3 = require('lib/base.php'); // imagine you have some admin routes $f3->route('GET|POST /admin','Controller\Admin->login'); // and these actions should be protected $f3->route('GET|POST /admin/@action','Controller\Admin->@action'); $f3->route('GET|POST /admin/@action/@type','Controller\Admin->@action'); $f3->route('PUT /admin/upload','Controller\Files->upload'); // so just add a global pre-route to all at once \Middleware::instance()->before('GET|POST /admin/*', function(\Base $f3, $params, $alias) { // do auth checks }); \Middleware::instance()->run(); $f3->run();
当然,您也可以在控制器中使用 beforeroute
和 afterroute
事件来添加此身份验证检查功能。但如果您的控制器结构尚未准备好便于实现,或者您有希望严格从控制器中分离出来的东西,例如设置,这里的中间件路由器将帮助您。
// enable the CORS settings only for your API routes: \Middleware::instance()->before('GET|HEAD|POST|PUT|OPTIONS /api/*', function(\Base $f3) { $f3->set('CORS.origin','*'); });
您还可以在其他事件上创建额外的中间件包装器
$mw = \Middleware::instance(); $mw->on('limit',['GET @v1: /api/v1/*','GET @v2: /api/v2/*'], function($f3,$args,$alias) { // do api usage limit checks return false; }); if ($mw->run('limit')) { // all good, continue }else{ // API limit reached }
注意
尽管您可能可以将中间件路由器作为完全独立的路由器使用,但它并不是框架集成路由器的完全替代品。中间件路由器不包含路由缓存处理、头部管理或自动 CORS 支持,因此请将其用作设置、检查和主路由周期前后工作负载的附加组件。
许可证
您可以在 GNU 通用公共许可证版本 3 或更高版本的前提下使用此插件。
版权 (C) 2019 Christian Knuth (ikkez)