-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
/
HeaderStack.php
86 lines (79 loc) · 2.08 KB
/
HeaderStack.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<?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.
*
* We put these into the Slim namespace, so that Slim\App will use these versions of header() and
* headers_sent() when we test its output.
*/
namespace Slim\Tests\Assets;
/**
* 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
*/
/**
* Store output artifacts
*/
class HeaderStack
{
/**
* @var string[][]
*/
private static $data = [];
/**
* Reset state
*/
public static function reset()
{
self::$data = [];
}
/**
* Push a header on the stack
*
* @param array $header
*/
public static function push(array $header)
{
self::$data[] = $header;
}
/**
* Return the current header stack
*
* @return string[][]
*/
public static function stack()
{
return self::$data;
}
/**
* Verify if there's a header line on the stack
*
* @param string $header
*
* @return bool
*/
public static function has($header)
{
foreach (self::$data as $item) {
if ($item['header'] === $header) {
return true;
}
}
return false;
}
}