diff options
Diffstat (limited to 'server/vendor/slim/slim/Slim/MiddlewareAwareTrait.php')
-rw-r--r-- | server/vendor/slim/slim/Slim/MiddlewareAwareTrait.php | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/server/vendor/slim/slim/Slim/MiddlewareAwareTrait.php b/server/vendor/slim/slim/Slim/MiddlewareAwareTrait.php deleted file mode 100644 index 14404b5..0000000 --- a/server/vendor/slim/slim/Slim/MiddlewareAwareTrait.php +++ /dev/null @@ -1,126 +0,0 @@ -<?php -/** - * Slim Framework (https://slimframework.com) - * - * @link https://github.com/slimphp/Slim - * @copyright Copyright (c) 2011-2017 Josh Lockhart - * @license https://github.com/slimphp/Slim/blob/3.x/LICENSE.md (MIT License) - */ -namespace Slim; - -use RuntimeException; -use SplStack; -use SplDoublyLinkedList; -use Psr\Http\Message\ServerRequestInterface; -use Psr\Http\Message\ResponseInterface; -use UnexpectedValueException; - -/** - * Middleware - * - * This is an internal class that enables concentric middleware layers. This - * class is an implementation detail and is used only inside of the Slim - * application; it is not visible to—and should not be used by—end users. - */ -trait MiddlewareAwareTrait -{ - /** - * Middleware call stack - * - * @var \SplStack - * @link http://php.net/manual/class.splstack.php - */ - protected $stack; - - /** - * Middleware stack lock - * - * @var bool - */ - protected $middlewareLock = false; - - /** - * Add middleware - * - * This method prepends new middleware to the application middleware stack. - * - * @param callable $callable Any callable that accepts three arguments: - * 1. A Request object - * 2. A Response object - * 3. A "next" middleware callable - * @return static - * - * @throws RuntimeException If middleware is added while the stack is dequeuing - * @throws UnexpectedValueException If the middleware doesn't return a Psr\Http\Message\ResponseInterface - */ - protected function addMiddleware(callable $callable) - { - if ($this->middlewareLock) { - throw new RuntimeException('Middleware can’t be added once the stack is dequeuing'); - } - - if (is_null($this->stack)) { - $this->seedMiddlewareStack(); - } - $next = $this->stack->top(); - $this->stack[] = function ( - ServerRequestInterface $request, - ResponseInterface $response - ) use ( - $callable, - $next - ) { - $result = call_user_func($callable, $request, $response, $next); - if ($result instanceof ResponseInterface === false) { - throw new UnexpectedValueException( - 'Middleware must return instance of \Psr\Http\Message\ResponseInterface' - ); - } - - return $result; - }; - - return $this; - } - - /** - * Seed middleware stack with first callable - * - * @param callable $kernel The last item to run as middleware - * - * @throws RuntimeException if the stack is seeded more than once - */ - protected function seedMiddlewareStack(callable $kernel = null) - { - if (!is_null($this->stack)) { - throw new RuntimeException('MiddlewareStack can only be seeded once.'); - } - if ($kernel === null) { - $kernel = $this; - } - $this->stack = new SplStack; - $this->stack->setIteratorMode(SplDoublyLinkedList::IT_MODE_LIFO | SplDoublyLinkedList::IT_MODE_KEEP); - $this->stack[] = $kernel; - } - - /** - * Call middleware stack - * - * @param ServerRequestInterface $request A request object - * @param ResponseInterface $response A response object - * - * @return ResponseInterface - */ - public function callMiddlewareStack(ServerRequestInterface $request, ResponseInterface $response) - { - if (is_null($this->stack)) { - $this->seedMiddlewareStack(); - } - /** @var callable $start */ - $start = $this->stack->top(); - $this->middlewareLock = true; - $response = $start($request, $response); - $this->middlewareLock = false; - return $response; - } -} |