Refactoring: added controlled middleware and changed response class
This commit is contained in:
58
app/Core/Controller/BaseMiddleware.php
Normal file
58
app/Core/Controller/BaseMiddleware.php
Normal file
@@ -0,0 +1,58 @@
|
||||
<?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($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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user