Verzeichnisstruktur phpBB-3.3.15


Veröffentlicht
28.08.2024

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

(Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

EasyHandle.php

Zuletzt modifiziert: 02.04.2025, 15:03 - Dateigröße: 2.76 KiB


01  <?php
02  namespace GuzzleHttp\Handler;
03   
04  use GuzzleHttp\Psr7\Response;
05  use Psr\Http\Message\RequestInterface;
06  use Psr\Http\Message\ResponseInterface;
07  use Psr\Http\Message\StreamInterface;
08   
09  /**
10   * Represents a cURL easy handle and the data it populates.
11   *
12   * @internal
13   */
14  final class EasyHandle
15  {
16      /** @var resource cURL resource */
17      public $handle;
18   
19      /** @var StreamInterface Where data is being written */
20      public $sink;
21   
22      /** @var array Received HTTP headers so far */
23      public $headers = [];
24   
25      /** @var ResponseInterface Received response (if any) */
26      public $response;
27   
28      /** @var RequestInterface Request being sent */
29      public $request;
30   
31      /** @var array Request options */
32      public $options = [];
33   
34      /** @var int cURL error number (if any) */
35      public $errno = 0;
36   
37      /** @var \Exception Exception during on_headers (if any) */
38      public $onHeadersException;
39   
40      /**
41       * Attach a response to the easy handle based on the received headers.
42       *
43       * @throws \RuntimeException if no headers have been received.
44       */
45      public function createResponse()
46      {
47          if (empty($this->headers)) {
48              throw new \RuntimeException('No headers have been received');
49          }
50   
51          // HTTP-version SP status-code SP reason-phrase
52          $startLine = explode(' ', array_shift($this->headers), 3);
53          $headers = \GuzzleHttp\headers_from_lines($this->headers);
54          $normalizedKeys = \GuzzleHttp\normalize_header_keys($headers);
55   
56          if (!empty($this->options['decode_content'])
57              && isset($normalizedKeys['content-encoding'])
58          ) {
59              $headers['x-encoded-content-encoding']
60                  = $headers[$normalizedKeys['content-encoding']];
61              unset($headers[$normalizedKeys['content-encoding']]);
62              if (isset($normalizedKeys['content-length'])) {
63                  $headers['x-encoded-content-length']
64                      = $headers[$normalizedKeys['content-length']];
65   
66                  $bodyLength = (int) $this->sink->getSize();
67                  if ($bodyLength) {
68                      $headers[$normalizedKeys['content-length']] = $bodyLength;
69                  } else {
70                      unset($headers[$normalizedKeys['content-length']]);
71                  }
72              }
73          }
74   
75          // Attach a response to the easy handle with the parsed headers.
76          $this->response = new Response(
77              $startLine[1],
78              $headers,
79              $this->sink,
80              substr($startLine[0], 5),
81              isset($startLine[2]) ? (string) $startLine[2] : null
82          );
83      }
84   
85      public function __get($name)
86      {
87          $msg = $name === 'handle'
88              ? 'The EasyHandle has been released'
89              : 'Invalid property: ' . $name;
90          throw new \BadMethodCallException($msg);
91      }
92  }
93