использование интерфейса оболочки в Magento 2


Я использовал функцию exec() для выполнения команд magento.

В качестве exec() не рекомендуется использовать приведенный ниже код.

class Test{
 protected $_shell;
 public function __construct(
    \Magento\Framework\ShellInterface $shell
){
    $this->_shell = $shell;
}
public function execute() {
    $this->_shell->execute("php bin/magento cache:disable");
}

Приведенный выше код работает не так, как ожидалось, может ли кто-нибудь помочь мне с вышеуказанным требованием.

Я ищу выполнение команд командной строки без использования SSH.

Спасибо!!

Author: Manjunath, 2021-01-21

1 answers

Замените свой код, как показано ниже

use Magento\Framework\Shell;
use Magento\Framework\Shell\CommandRenderer;
class Test{
protected $_shell;
public function __construct(
 .....
 .....
){
  ....
  $this->_shell = new Shell(new CommandRenderer());
}
public function execute() {
  $this->_shell->execute("php bin/magento cache:disable");
}
 2
Author: jafar pinjar, 2021-01-21 13:04:13