Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
vendor
/
laravel
:
FakeProcessResult.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace Illuminate\Process; use Illuminate\Contracts\Process\ProcessResult as ProcessResultContract; use Illuminate\Process\Exceptions\ProcessFailedException; class FakeProcessResult implements ProcessResultContract { /** * The command string. * * @var string */ protected $command; /** * The process exit code. * * @var int */ protected $exitCode; /** * The process output. * * @var string */ protected $output = ''; /** * The process error output. * * @var string */ protected $errorOutput = ''; /** * Create a new process result instance. * * @param string $command * @param int $exitCode * @param array|string $output * @param array|string $errorOutput * @return void */ public function __construct(string $command = '', int $exitCode = 0, array|string $output = '', array|string $errorOutput = '') { $this->command = $command; $this->exitCode = $exitCode; $this->output = $this->normalizeOutput($output); $this->errorOutput = $this->normalizeOutput($errorOutput); } /** * Normalize the given output into a string with newlines. * * @param array|string $output * @return string */ protected function normalizeOutput(array|string $output) { if (empty($output)) { return ''; } elseif (is_string($output)) { return rtrim($output, "\n")."\n"; } elseif (is_array($output)) { return rtrim( collect($output) ->map(fn ($line) => rtrim($line, "\n")."\n") ->implode(''), "\n" ); } } /** * Get the original command executed by the process. * * @return string */ public function command() { return $this->command; } /** * Create a new fake process result with the given command. * * @param string $command * @return self */ public function withCommand(string $command) { return new FakeProcessResult($command, $this->exitCode, $this->output, $this->errorOutput); } /** * Determine if the process was successful. * * @return bool */ public function successful() { return $this->exitCode === 0; } /** * Determine if the process failed. * * @return bool */ public function failed() { return ! $this->successful(); } /** * Get the exit code of the process. * * @return int */ public function exitCode() { return $this->exitCode; } /** * Get the standard output of the process. * * @return string */ public function output() { return $this->output; } /** * Determine if the output contains the given string. * * @param string $output * @return bool */ public function seeInOutput(string $output) { return str_contains($this->output(), $output); } /** * Get the error output of the process. * * @return string */ public function errorOutput() { return $this->errorOutput; } /** * Determine if the error output contains the given string. * * @param string $output * @return bool */ public function seeInErrorOutput(string $output) { return str_contains($this->errorOutput(), $output); } /** * Throw an exception if the process failed. * * @param callable|null $callback * @return $this * * @throws \Illuminate\Process\Exceptions\ProcessFailedException */ public function throw(?callable $callback = null) { if ($this->successful()) { return $this; } $exception = new ProcessFailedException($this); if ($callback) { $callback($this, $exception); } throw $exception; } /** * Throw an exception if the process failed and the given condition is true. * * @param bool $condition * @param callable|null $callback * @return $this * * @throws \Throwable */ public function throwIf(bool $condition, ?callable $callback = null) { if ($condition) { return $this->throw($callback); } return $this; } }