main
Robert 8 months ago
parent c761fd6d24
commit 5f1ac65ed8
  1. 1
      .gitignore
  2. 10
      src/libs/Middleware.php
  3. 20
      src/testMiddleware.php

1
.gitignore vendored

@ -1,2 +1,3 @@
composer.lock
vendor/
*.swp

@ -4,7 +4,7 @@ namespace libs;
interface Middleware
{
public function handle($request, \Closure $next, ...$parameters);
public function handle(array $request, \Closure $next, mixed ...$parameters): mixed;
}
class Pipeline
@ -12,7 +12,7 @@ class Pipeline
protected array $middleware = [];
protected $request;
public function send($request): Object
public function send(array $request): Object
{
$this->request = $request;
return $this;
@ -24,7 +24,7 @@ class Pipeline
return $this;
}
public function then(\Closure $destination)
public function then(\Closure $destination): array
{
$pipeline = array_reduce(
array_reverse($this->parseMiddleware($this->middleware)),
@ -37,14 +37,14 @@ class Pipeline
return $pipeline($this->request);
}
protected function parseMiddleware(array $middleware)
protected function parseMiddleware(array $middleware): array
{
return array_map(function ($m) {
return is_string($m) ? explode(':', $m, 2) : $m;
}, $middleware);
}
protected function carry()
protected function carry(): mixed
{
return function ($stack, $middleware) {
return function ($request) use ($stack, $middleware) {

@ -4,7 +4,10 @@ require "libs/autoload.php";
class TrimStrings implements libs\Middleware
{
public function handle($request, \Closure $next, ...$parameters)
/**
* @param array<string, string> $request
*/
public function handle(array $request, \Closure $next, mixed ...$parameters): mixed
{
foreach ($request as $key => $value) {
if (is_string($value)) {
@ -18,7 +21,10 @@ class TrimStrings implements libs\Middleware
class ucStrings implements libs\Middleware
{
public function handle($request, \Closure $next, ...$parameters)
/**
* @param array<string, string> $request
*/
public function handle(array $request, \Closure $next, mixed ...$parameters): mixed
{
foreach ($request as $key => $value) {
if (is_string($value)) {
@ -32,7 +38,10 @@ class ucStrings implements libs\Middleware
class ConvertEmptyStringsToNull implements libs\Middleware
{
public function handle($request, \Closure $next, ...$parameters)
/**
* @param array<string, string> $request
*/
public function handle(array $request, \Closure $next, mixed ...$parameters): mixed
{
foreach ($request as $key => $value) {
if ($value === '') {
@ -46,7 +55,10 @@ class ConvertEmptyStringsToNull implements libs\Middleware
class RoleCheck implements libs\Middleware
{
public function handle($request, Closure $next, ...$parameters)
/**
* @param array<string, string> $request
*/
public function handle(array $request, Closure $next, mixed ...$parameters): mixed
{
$role = $parameters[0] ?? '';
$level = $parameters[1] ?? 'high';

Loading…
Cancel
Save