D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
psa
/
admin
/
plib
/
vendor
/
slim
/
psr7
/
tests
/
Assets
/
Filename :
HeaderStack.php
back
Copy
<?php /** * This is a direct copy of zend-diactoros/test/TestAsset/Functions.php and is used to override * header() and headers_sent() so we can test that they do the right thing. */ namespace Slim\Tests\Psr7\Assets; use function strpos; /** * Zend Framework (http://framework.zend.com/) * * This file exists to allow overriding the various output-related functions * in order to test what happens during the `Server::listen()` cycle. * * These functions include: * * - headers_sent(): we want to always return false so that headers will be * emitted, and we can test to see their values. * - header(): we want to aggregate calls to this function. * * The HeaderStack class then aggregates that information for us, and the test * harness resets the values pre and post test. * * @see http://github.com/zendframework/zend-diactoros for the canonical source repository * @copyright Copyright (c) 2015-2016 Zend Technologies USA Inc. (http://www.zend.com) * @license https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License */ class HeaderStack { private static array $data = []; /** * Reset state */ public static function reset() { self::$data = []; } /** * Push a header on the stack * * @param string[] $header */ public static function push(array $header) { self::$data[] = $header; } /** * Return the current header stack * * @return string[][] */ public static function stack(): array { return self::$data; } /** * Verify if there's a header line on the stack * * @param string $header * * @return bool */ public static function has($header): bool { foreach (self::$data as $item) { if ($item['header'] === $header) { return true; } } return false; } /** * Remove occurrences of $header * * @param string $header */ public static function remove($header): void { foreach (self::$data as $key => $item) { if (false !== strpos($item['header'], "$header:")) { unset(self::$data[$key]); } } } }