nin/phalcon-middleware
最新稳定版本:v1.0.0
Composer 安装命令:
composer require nin/phalcon-middleware
包简介
Integrates Middleware with Phalcon 5.
README 文档
README
This is a package to integrate middleware with Phalcon 5. Middleware provide a convenient mechanism for inspecting and filtering HTTP requests entering your application.
Installation:
Require this package with composer.
composer require nin/phalcon-middleware
Register a Provider in index.php
$container = new \Phalcon\Di\FactoryDefault(); $container->register(new \Nin\Middleware\ServiceProvider());
OR app/config/providers.php
return [ \Nin\Middleware\ServiceProvider::class, ];
Usage:
Config:
Make config file config/middleware.php
<?php return [ // The application's global HTTP middleware stack // These middleware are run during every request to your application. 'middleware_global' => [ \App\Middleware\TrimStrings::class ], // The application's route middleware groups. 'middleware_groups' => [ 'web' => [ \App\Middleware\StartSession::class ], 'api' => [ \App\Middleware\ApiMiddleware::class, \App\Middleware\AdminApiMiddleware::class ] ], ];
Make Middleware Class:
<?php namespace App\Middleware; use Nin\Middleware\Middleware; class TestMiddleware extends Middleware { public function handle($request) { if ($request->get('token') !== 'valid-token') { throw new \Exception('Token invalid.'); } return parent::handle($request); } }
Assigning Middleware To Routes:
use Phalcon\Mvc\Router; $router = new Router(); $router->addGet( '/invoices/edit/{id}', [ 'controller' => 'invoices', 'action' => 'edit', 'middleware' => ['web', 'auth'], ] );
For groups
new \Phalcon\Mvc\Router\Group([ 'module' => 'backend', 'middleware' => 'web', ]);
Assigning Middleware To Controller:
class InvoicesController extends Controller { public function initialize() { $this->middleware->attach('auth'); } public function editAction() { // OR: $this->middleware->attach('auth'); } }
Middleware Parameters:
$this->middleware->attach( ['web', 'auth:admin']); class AuthMiddleware extends \Nin\Middleware\Middleware { public function handle($request) { $param = $this->getParam(); if ($param !== 'admin') { throw new \Exception('Authenticate Fail.'); } return parent::handle($request); } }
Redirecting:
Redirect to route:
public function handle($request) { if ($this->getParam() !== 'admin') { return $this->redirectToRoute('login'); } return parent::handle($request); }
Redirect to url:
public function handle($request) { if ($this->getParam() !== 'admin') { return $this->redirectToUrl('/login'); } return parent::handle($request); }
统计信息
- 总下载量: 7
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-02-12