PluginProbe
Solid Performance – Your No-Code Caching, Performance, & Page Speed Solution / trunk
Solid Performance – Your No-Code Caching, Performance, & Page Speed Solution vtrunk
2.0.1 trunk 1.0.0 1.1.0 1.2.0 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 1.6.1 1.7.0 1.7.1 1.8.0 1.9.0 2.0.0
solid-performance / src / Performance / Page_Cache / Header_Sender.php

Header_Sender.php in Solid Performance – Your No-Code Caching, Performance, & Page Speed Solution trunk, at src/Performance/Page_Cache/Header_Sender.php

58 lines 1.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Sends HTTP response headers when serving cache files.
4 *
5 * @package SolidWP\Performance
6 */
7
8 declare( strict_types=1 );
9
10 namespace SolidWP\Performance\Page_Cache;
11
12 use SolidWP\Performance\Http\Header;
13
14 /**
15 * Sends HTTP response headers when serving cache files.
16 *
17 * @package SolidWP\Performance
18 */
19 class Header_Sender {
20
21 /**
22 * Send HTTP response headers.
23 *
24 * @param Header $header The header object with the cached response headers.
25 *
26 * @return void
27 */
28 public function send( Header $header ): void {
29 foreach ( $header->all() as $name => $headers ) {
30 $header_value = $header->get( $name );
31
32 // Single header value, replace any existing.
33 if ( count( $headers ) < 2 ) {
34 $this->send_header( "$name: $header_value" );
35
36 continue;
37 }
38
39 // Header has multiple values, set multiple values for the same header.
40 foreach ( $headers as $value ) {
41 $this->send_header( "$name: $value", false );
42 }
43 }
44 }
45
46 /**
47 * Send the HTTP response header.
48 *
49 * @param string $raw_header The raw header in Name: Value format.
50 * @param bool $replace Whether to replace a previously similar header.
51 *
52 * @return void
53 */
54 protected function send_header( string $raw_header, bool $replace = true ): void {
55 header( $raw_header, $replace );
56 }
57 }
58