. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
| Server IP : 162.0.212.4 / Your IP :
216.73.216.14 [
Web Server : LiteSpeed System : Linux premium146.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : alshnoli ( 2431) PHP Version : 8.3.28 Disable Function : NONE Domains : 1 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/alshnoli/public_html/wp-content/plugins/worker/src/MWP/Stream/ |
Upload File : |
<?php
/*
* This file is part of the ManageWP Worker plugin.
*
* (c) ManageWP LLC <contact@managewp.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
class MWP_Stream_ProcessOutput extends MWP_Stream_Callable
{
/**
* @var Symfony_Process_Process
*/
private $process;
/**
* @var bool
*/
private $ran = false;
public function __construct(Symfony_Process_Process $process)
{
parent::__construct(array($this, 'getIncrementalOutput'));
$this->process = $process;
}
/**
* Returns incremental process output (even if empty string) or false if the process has finished
* successfully and all output was already returned.
*
* @throws Symfony_Process_Exception_ProcessFailedException If the process did not exit successfully.
*
* @internal
*
* @return string|false
*/
public function getIncrementalOutput()
{
if (!$this->ran) {
$this->ran = true;
try {
$this->process->start();
} catch (Symfony_Process_Exception_ExceptionInterface $e) {
throw new Symfony_Process_Exception_ProcessFailedException($this->process);
}
}
if ($this->process->isRunning()) {
$output = $this->process->getIncrementalOutput();
$this->process->clearOutput();
if (strlen($output) < Symfony_Process_Pipes_PipesInterface::CHUNK_SIZE) {
// Don't hog the processor while waiting for incremental process output.
usleep(100000);
}
// The stream will be read again because we're returning a string.
return (string)$output;
} else {
if (!$this->process->isSuccessful()) {
throw new Symfony_Process_Exception_ProcessFailedException($this->process);
}
$output = $this->process->getIncrementalOutput();
$this->process->clearOutput();
// The process has finished and is successful. This part will probably get run twice,
// first time we'll return final output, second time we'll return 'false' and break the loop.
return strlen($output) ? $output : false;
}
}
}