59 lines
1.1 KiB
PHP
59 lines
1.1 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace Kanboard\Core\Controller;
|
||
|
|
|
||
|
|
use Kanboard\Core\Base;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Class BaseMiddleware
|
||
|
|
*
|
||
|
|
* @package Kanboard\Core\Controller
|
||
|
|
* @author Frederic Guillot
|
||
|
|
*/
|
||
|
|
abstract class BaseMiddleware extends Base
|
||
|
|
{
|
||
|
|
/**
|
||
|
|
* @var BaseMiddleware
|
||
|
|
*/
|
||
|
|
protected $nextMiddleware = null;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Execute middleware
|
||
|
|
*/
|
||
|
|
abstract public function execute();
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Set next middleware
|
||
|
|
*
|
||
|
|
* @param BaseMiddleware $nextMiddleware
|
||
|
|
* @return BaseMiddleware
|
||
|
|
*/
|
||
|
|
public function setNextMiddleware(BaseMiddleware $nextMiddleware)
|
||
|
|
{
|
||
|
|
$this->nextMiddleware = $nextMiddleware;
|
||
|
|
return $this;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @return BaseMiddleware
|
||
|
|
*/
|
||
|
|
public function getNextMiddleware()
|
||
|
|
{
|
||
|
|
return $this->nextMiddleware;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Move to next middleware
|
||
|
|
*/
|
||
|
|
public function next()
|
||
|
|
{
|
||
|
|
if ($this->nextMiddleware !== null) {
|
||
|
|
if (DEBUG) {
|
||
|
|
$this->logger->debug(__METHOD__.' => ' . get_class($this->nextMiddleware));
|
||
|
|
}
|
||
|
|
|
||
|
|
$this->nextMiddleware->execute();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|