b374k
m1n1 1.01
Apache/2.4.41 (Ubuntu)
Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64
uid=33(www-data) gid=33(www-data) groups=33(www-data)
server ip : 62.171.164.128 | your ip : 127.0.0.1
safemode OFF
 >  / home / a / home / dev2.destoffenstraat.com / update / vendor / phpunit / phpunit / src / Util /
Filename/home/a/home/dev2.destoffenstraat.com/update/vendor/phpunit/phpunit/src/Util/Printer.php
Size3.32 kb
Permissionrw-r--r--
Ownerroot : root
Create time21-Aug-2025 12:26
Last modified06-Apr-2021 18:06
Last accessed23-Aug-2025 02:38
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Util;

use PHPUnit\Framework\Exception;

/**
* Utility class that can print to STDOUT or write to a file.
*/
class Printer
{
/**
* If true, flush output after every write.
*
* @var bool
*/
protected $autoFlush = false;

/**
* @var resource
*/
protected $out;

/**
* @var string
*/
protected $outTarget;

/**
* Constructor.
*
* @param mixed $out
*
* @throws Exception
*/
public function __construct($out = null)
{
if ($out !== null) {
if (\is_string($out)) {
if (\strpos($out, 'socket://') === 0) {
$out = \explode(':', \str_replace('socket://', '', $out));

if (\count($out) !== 2) {
throw new Exception;
}

$this->out = \fsockopen($out[0], $out[1]);
} else {
if (\strpos($out, 'php://') === false && !@\mkdir(\dirname($out), 0777, true) && !\is_dir(\dirname($out))) {
throw new \RuntimeException(\sprintf('Directory "%s" was not created', \dirname($out)));
}

$this->out = \fopen($out, 'wt');
}

$this->outTarget = $out;
} else {
$this->out = $out;
}
}
}

/**
* Flush buffer and close output if it's not to a PHP stream
*/
public function flush(): void
{
if ($this->out && \strncmp($this->outTarget, 'php://', 6) !== 0) {
\fclose($this->out);
}
}

/**
* Performs a safe, incremental flush.
*
* Do not confuse this function with the flush() function of this class,
* since the flush() function may close the file being written to, rendering
* the current object no longer usable.
*/
public function incrementalFlush(): void
{
if ($this->out) {
\fflush($this->out);
} else {
\flush();
}
}

/**
* @param string $buffer
*/
public function write(string $buffer): void
{
if ($this->out) {
\fwrite($this->out, $buffer);

if ($this->autoFlush) {
$this->incrementalFlush();
}
} else {
if (PHP_SAPI !== 'cli' && PHP_SAPI !== 'phpdbg') {
$buffer = \htmlspecialchars($buffer, ENT_SUBSTITUTE);
}

print $buffer;

if ($this->autoFlush) {
$this->incrementalFlush();
}
}
}

/**
* Check auto-flush mode.
*
* @return bool
*/
public function getAutoFlush(): bool
{
return $this->autoFlush;
}

/**
* Set auto-flushing mode.
*
* If set, *incremental* flushes will be done after each write. This should
* not be confused with the different effects of this class' flush() method.
*
* @param bool $autoFlush
*/
public function setAutoFlush(bool $autoFlush): void
{
$this->autoFlush = $autoFlush;
}
}