/
githubmirror
/
symfony
Обзор
Документация
Войти
/
githubmirror
/
symfony
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
8.2
src/Symfony/Component/Console/Tester/ExecutionResult.php
99 строк
3 KB
Nicolas Grekas
[FrameworkBundle] Remove hard-dep of KernelTestCase on ConsoleAssertionsTrait
06 мар 2026, 11:53
06 мар 2026, 11:53
23b11e5
Код
Авторство
О чём код?
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Console\Tester; use Symfony\Component\Console\Output\TestOutput; /** * @author Théo FIDRY <theo.fidry@gmail.com> */ final class ExecutionResult { // This is purely for memoizing purposes private array $results = []; /** * @param array<\Closure(string): string> $normalizers */ public function __construct( public readonly string $input, public readonly int $statusCode, private readonly TestOutput $output, private readonly array $normalizers = [], ) { } /** * Gets the display returned by the execution of the command or application. The display combines what was * written on both the output and error output. */ public function getDisplay(bool $normalize = true): string { return $this->results['display'][$normalize] ??= $this->normalize($this->output->getDisplayContents(), $normalize); } /** * Gets the output written to the output by the command or application. */ public function getOutput(bool $normalize = false): string { return $this->results['output'][$normalize] ??= $this->normalize($this->output->getOutputContents(), $normalize); } /** * Gets the output written to the error output by the command or application. */ public function getErrorOutput(bool $normalize = false): string { return $this->results['errorOutput'][$normalize] ??= $this->normalize($this->output->getErrorOutputContents(), $normalize); } /** * @return $this */ public function dump(): static { $summary = "CLI: {$this->input}, Status: {$this->statusCode}"; $output = [ $summary, $this->getOutput(true), $this->getErrorOutput(true), $summary, ]; \call_user_func( \function_exists('dump') ? 'dump' : 'var_dump', implode("\n\n", array_filter($output)), ); return $this; } public function dd(): never { $this->dump(); exit(1); } private function normalize(string $value, bool $normalize): string { if (!$normalize) { return $value; } foreach ($this->normalizers as $normalizer) { $value = $normalizer($value); } return str_replace(\PHP_EOL, "\n", $value); } }