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

StreamOutput.php

Zuletzt modifiziert: 09.10.2024, 12:58 - Dateigröße: 3.08 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\Console\Output;
 013   
 014  use Symfony\Component\Console\Formatter\OutputFormatterInterface;
 015   
 016  /**
 017   * StreamOutput writes the output to a given stream.
 018   *
 019   * Usage:
 020   *
 021   * $output = new StreamOutput(fopen('php://stdout', 'w'));
 022   *
 023   * As `StreamOutput` can use any stream, you can also use a file:
 024   *
 025   * $output = new StreamOutput(fopen('/path/to/output.log', 'a', false));
 026   *
 027   * @author Fabien Potencier <fabien@symfony.com>
 028   *
 029   * @api
 030   */
 031  class StreamOutput extends Output
 032  {
 033      private $stream;
 034   
 035      /**
 036       * Constructor.
 037       *
 038       * @param mixed                         $stream    A stream resource
 039       * @param int                           $verbosity The verbosity level (one of the VERBOSITY constants in OutputInterface)
 040       * @param bool|null                     $decorated Whether to decorate messages (null for auto-guessing)
 041       * @param OutputFormatterInterface|null $formatter Output formatter instance (null to use default OutputFormatter)
 042       *
 043       * @throws \InvalidArgumentException When first argument is not a real stream
 044       *
 045       * @api
 046       */
 047      public function __construct($stream, $verbosity = self::VERBOSITY_NORMAL, $decorated = null, OutputFormatterInterface $formatter = null)
 048      {
 049          if (!is_resource($stream) || 'stream' !== get_resource_type($stream)) {
 050              throw new \InvalidArgumentException('The StreamOutput class needs a stream as its first argument.');
 051          }
 052   
 053          $this->stream = $stream;
 054   
 055          if (null === $decorated) {
 056              $decorated = $this->hasColorSupport();
 057          }
 058   
 059          parent::__construct($verbosity, $decorated, $formatter);
 060      }
 061   
 062      /**
 063       * Gets the stream attached to this StreamOutput instance.
 064       *
 065       * @return resource A stream resource
 066       */
 067      public function getStream()
 068      {
 069          return $this->stream;
 070      }
 071   
 072      /**
 073       * {@inheritdoc}
 074       */
 075      protected function doWrite($message, $newline)
 076      {
 077          if (false === @fwrite($this->stream, $message.($newline ? PHP_EOL : ''))) {
 078              // @codeCoverageIgnoreStart
 079              // should never happen
 080              throw new \RuntimeException('Unable to write output.');
 081              // @codeCoverageIgnoreEnd
 082          }
 083   
 084          fflush($this->stream);
 085      }
 086   
 087      /**
 088       * Returns true if the stream supports colorization.
 089       *
 090       * Colorization is disabled if not supported by the stream:
 091       *
 092       *  -  Windows without Ansicon and ConEmu
 093       *  -  non tty consoles
 094       *
 095       * @return bool    true if the stream supports colorization, false otherwise
 096       */
 097      protected function hasColorSupport()
 098      {
 099          // @codeCoverageIgnoreStart
 100          if (DIRECTORY_SEPARATOR == '\\') {
 101              return false !== getenv('ANSICON') || 'ON' === getenv('ConEmuANSI');
 102          }
 103   
 104          return function_exists('posix_isatty') && @posix_isatty($this->stream);
 105          // @codeCoverageIgnoreEnd
 106      }
 107  }
 108