Server IP : 185.86.78.101 / Your IP : 216.73.216.124 Web Server : Apache System : Linux 675867-vds-valikoshka1996.gmhost.pp.ua 5.4.0-150-generic #167-Ubuntu SMP Mon May 15 17:35:05 UTC 2023 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /www/wwwroot/mifepriston.org/vendor/phpunit/phpunit/src/Util/ |
Upload File : |
<?php declare(strict_types=1); /* * 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 const ENT_SUBSTITUTE; use const PHP_SAPI; use function assert; use function count; use function dirname; use function explode; use function fclose; use function fflush; use function flush; use function fopen; use function fsockopen; use function fwrite; use function htmlspecialchars; use function is_resource; use function is_string; use function sprintf; use function str_replace; use function strncmp; use function strpos; use PHPUnit\Framework\Exception; /** * @internal This class is not covered by the backward compatibility promise for PHPUnit */ class Printer { /** * If true, flush output after every write. * * @var bool */ protected $autoFlush = false; /** * @psalm-var resource|closed-resource */ protected $out; /** * @var string */ protected $outTarget; /** * Constructor. * * @param null|resource|string $out * * @throws Exception */ public function __construct($out = null) { if ($out === null) { return; } if (is_string($out) === false) { $this->out = $out; return; } 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 && !Filesystem::createDirectory(dirname($out))) { throw new Exception(sprintf('Directory "%s" was not created', dirname($out))); } $this->out = fopen($out, 'wt'); } $this->outTarget = $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) { assert(is_resource($this->out)); 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) { assert(is_resource($this->out)); fflush($this->out); } else { flush(); } } public function write(string $buffer): void { if ($this->out) { assert(is_resource($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. */ 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. */ public function setAutoFlush(bool $autoFlush): void { $this->autoFlush = $autoFlush; } }