Server : Apache System : Linux pod-100823:apache2_74:v0.5.7 5.4.0-1138-gcp #147~18.04.1-Ubuntu SMP Mon Oct 7 21:46:26 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33.7 Disable Function : apache_child_terminate,apache_get_modules,apache_get_version,apache_getenv,apache_note,apache_setenv,disk_free_space,disk_total_space,diskfreespace,dl,exec,fastcgi_finish_request,link,opcache_compile_file,opcache_get_configuration,opcache_invalidate,opcache_is_script_cached,opcache_reset,passthru,pclose,pcntl_exec,popen,posix_getpid,posix_getppid,posix_getpwuid,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_uname,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,realpath_cache_get,shell_exec,show_source,symlink,system Directory : /nas/content/live/attorneyexperi/wp-content/plugins/ugslot/MWP/Stream/ |
<?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; } } }