Skip to content

Instantly share code, notes, and snippets.

@diloabininyeri
Last active January 1, 2019 19:45
Show Gist options
  • Select an option

  • Save diloabininyeri/e6a6b7291504d8dd356df555364c77fb to your computer and use it in GitHub Desktop.

Select an option

Save diloabininyeri/e6a6b7291504d8dd356df555364c77fb to your computer and use it in GitHub Desktop.
php make middleware pure php without framework
<?php
/**
* Created by PhpStorm.
* User: nkolayofis
* Date: 1.01.2019
* Time: 21:45
*/
require_once "vendor/autoload.php";
use Nkolay\App\Middleware;
function asd()
{
return "hoppppppp";
}
class Middlewarem
{
/**
* @param $class
* @param $next
* @param $request
* @return mixed
*/
static function call($class, $next, $request)
{
return call_user_func_array([new $class, 'handle'], [$next, $request]);
}
}
class bir implements \Nkolay\Interfaces\MiddlewareInterface
{
/**
* @param Closure $next
* @param $request
* @return mixed
*
*/
function handle(Closure $next, $request)
{
$request->asd = 4555;
return $next( $request );
}
}
class uc implements \Nkolay\Interfaces\MiddlewareInterface
{
/**
* @param Closure $next
* @param $request
* @return mixed
*
*/
function handle(Closure $next, $request)
{
$request->user = "admin";
return $next( $request );
}
}
class iki implements \Nkolay\Interfaces\MiddlewareInterface
{
/**
* @param Closure $next
* @param $request
* @return mixed
*
*/
function handle(Closure $next, $request)
{
return asd();
$request->ad = 34;
return $next( $request );
}
}
$array = [bir::class, iki::class, uc::class];
class Request
{
}
$request = new Request();
$request->id = 23;
foreach ($array as $item) {
if ($request instanceof Request) {
$request = Middlewarem::call( new $item, function ($re) {
return $re;
}, $request );
} else {
break;
}
}
print_r( $request );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment