b374k
m1n1 1.01
Apache/2.4.41 (Ubuntu)
Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64
uid=33(www-data) gid=33(www-data) groups=33(www-data)
server ip : 62.171.164.128 | your ip : 127.0.0.1
safemode OFF
 >  / home / dev2.destoffenstraat.com / vendor / magento / framework / App /
Filename/home/dev2.destoffenstraat.com/vendor/magento/framework/App/Shell.php
Size2.23 kb
Permissionrw-r--r--
Ownerroot : root
Create time17-Aug-2025 10:26
Last modified07-Jan-2021 21:08
Last accessed23-Aug-2025 03:56
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\App;

use Magento\Framework\Exception\LocalizedException;
use Magento\Framework\Phrase;
use Magento\Framework\Shell\CommandRendererInterface;
use Magento\Framework\Shell\Driver;
use Magento\Framework\ShellInterface;
use Psr\Log\LoggerInterface;

/**
* Class is separate from \Magento|Framework\Shell because logging behavior is different, and relies on ObjectManager
* being available.
*/
class Shell implements ShellInterface
{
/**
* @var \Magento\Framework\Shell\Driver
*/
private $driver;

/**
* @var \Psr\Log\LoggerInterface
*/
private $logger;

/**
* @param Driver $driver
* @param CommandRendererInterface $commandRenderer
* @param LoggerInterface $logger
*/
public function __construct(
Driver $driver,
LoggerInterface $logger
) {
$this->driver = $driver;
$this->logger = $logger;
}

/**
* Execute a command through the command line, passing properly escaped arguments
*
* @param string $command Command with optional argument markers '%s'
* @param string[] $arguments Argument values to substitute markers with
* @throws \Magento\Framework\Exception\LocalizedException If a command returns non-zero exit code
* @return string
*/
public function execute($command, array $arguments = [])
{
try {
$response = $this->driver->execute($command, $arguments);
} catch (LocalizedException $e) {
$this->logger->error($e->getLogMessage());
throw $e;
}
$escapedCommand = $response->getEscapedCommand();
$output = $response->getOutput();
$exitCode = $response->getExitCode();
$logEntry = $escapedCommand . PHP_EOL . $output;
if ($exitCode) {
$this->logger->error($logEntry);
$commandError = new \Exception($output, $exitCode);
throw new LocalizedException(
new Phrase("Command returned non-zero exit code:\n`%1`", [$command]),
$commandError
);
}
$this->logger->info($logEntry);
return $output;
}
}