Verzeichnisstruktur phpBB-3.1.0


Veröffentlicht
27.10.2014

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

StreamedResponse.php

Zuletzt modifiziert: 09.10.2024, 12:58 - Dateigröße: 2.82 KiB


 001  <?php
 002   
 003  /*
 004   * This file is part of the Symfony package.
 005   *
 006   * (c) Fabien Potencier <fabien@symfony.com>
 007   *
 008   * For the full copyright and license information, please view the LICENSE
 009   * file that was distributed with this source code.
 010   */
 011   
 012  namespace Symfony\Component\HttpFoundation;
 013   
 014  /**
 015   * StreamedResponse represents a streamed HTTP response.
 016   *
 017   * A StreamedResponse uses a callback for its content.
 018   *
 019   * The callback should use the standard PHP functions like echo
 020   * to stream the response back to the client. The flush() method
 021   * can also be used if needed.
 022   *
 023   * @see flush()
 024   *
 025   * @author Fabien Potencier <fabien@symfony.com>
 026   *
 027   * @api
 028   */
 029  class StreamedResponse extends Response
 030  {
 031      protected $callback;
 032      protected $streamed;
 033   
 034      /**
 035       * Constructor.
 036       *
 037       * @param mixed   $callback A valid PHP callback
 038       * @param int     $status   The response status code
 039       * @param array   $headers  An array of response headers
 040       *
 041       * @api
 042       */
 043      public function __construct($callback = null, $status = 200, $headers = array())
 044      {
 045          parent::__construct(null, $status, $headers);
 046   
 047          if (null !== $callback) {
 048              $this->setCallback($callback);
 049          }
 050          $this->streamed = false;
 051      }
 052   
 053      /**
 054       * {@inheritdoc}
 055       */
 056      public static function create($callback = null, $status = 200, $headers = array())
 057      {
 058          return new static($callback, $status, $headers);
 059      }
 060   
 061      /**
 062       * Sets the PHP callback associated with this Response.
 063       *
 064       * @param mixed $callback A valid PHP callback
 065       *
 066       * @throws \LogicException
 067       */
 068      public function setCallback($callback)
 069      {
 070          if (!is_callable($callback)) {
 071              throw new \LogicException('The Response callback must be a valid PHP callable.');
 072          }
 073          $this->callback = $callback;
 074      }
 075   
 076      /**
 077       * {@inheritdoc}
 078       */
 079      public function prepare(Request $request)
 080      {
 081          $this->headers->set('Cache-Control', 'no-cache');
 082   
 083          return parent::prepare($request);
 084      }
 085   
 086      /**
 087       * {@inheritdoc}
 088       *
 089       * This method only sends the content once.
 090       */
 091      public function sendContent()
 092      {
 093          if ($this->streamed) {
 094              return;
 095          }
 096   
 097          $this->streamed = true;
 098   
 099          if (null === $this->callback) {
 100              throw new \LogicException('The Response callback must not be null.');
 101          }
 102   
 103          call_user_func($this->callback);
 104      }
 105   
 106      /**
 107       * {@inheritdoc}
 108       *
 109       * @throws \LogicException when the content is not null
 110       */
 111      public function setContent($content)
 112      {
 113          if (null !== $content) {
 114              throw new \LogicException('The content cannot be set on a StreamedResponse instance.');
 115          }
 116      }
 117   
 118      /**
 119       * {@inheritdoc}
 120       *
 121       * @return false
 122       */
 123      public function getContent()
 124      {
 125          return false;
 126      }
 127  }
 128