Выполнение команды через shell_exec Drupal 8

Аватар пользователя Junnior Junnior 12 августа в 9:34

Добрый день. У меня такая проблема. Создал форму, которая по нажатию кнопки должна запускать команду через drupal console. При нажатии приходит сообщение, что кнопку нажали, но ничего не происходит. Через htop не вижу нужный процесс который должен был запустится. Подскажите пожалуйста, в чём может быть проблема?
Вот код формы:

<?php

namespace Drupal\custom\Form;

use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;

class ValidateProductsForm extends FormBase {

    public function getFormId() {
        return 'validate_products_form';
    }

    public function buildForm(array $form, FormStateInterface $form_state) {

        $form['submit'] = [
            '#type' => 'submit',
            '#value' => 'Запустить проверку каталога',
            '#button_type' => 'primary',
        ];

        return $form;        
       
    }

    public function submitForm(array &$form, FormStateInterface $form_state) {

        shell_exec('drupal custom:validate_products');
        $messenger = \Drupal::messenger();
        $messenger->addMessage('Процесс запущен.');
       
    }
}

0 Thanks

Комментарии

Аватар пользователя Junnior Junnior 12 августа в 9:53

Проверял что получается через dpm()

К примеру, если написать: $output = shell_exec('ls');
dpm($output) отработает нормально.

Если написать: $output = shell_exec('drupal');
dpm($output) на выходе получается NULL.