Symfony 3.3: массив от контроллера к команде с компонентом процесса?

Можно ли отправить массив с моего контроллера в команду?

Мой метод контроллера и массив var:

$myArray = array("foo"=>"foo", "bar" => "bar");
$process = new Process('php ../bin/console app:my-command'); //how to send myArray
$process->start();

Моя команда:

protected function execute(InputInterface $input, OutputInterface $output)
{
    $output->writeln([
        'Show my array below'
    ]);

    //print_r($myArray);

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

vstm 13.06.2018 15:51

Спасибо за ответ :) В конкретном случае мой контроллер получает файл пользователя, который я форматирую и импортирую в свою базу данных. Но импорт слишком длинный, поэтому я хотел создать подпроцесс (с компонентом Process) для импорта. И я не знаю, как передать переменную users (массив) в команду с моего контроллера.

user9403257 13.06.2018 15:58

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

Cerad 13.06.2018 16:08

вот так: $process = new Process('php ../bin/console app:my-command ' . $mySerializedVar); Не работает: / У меня такая ошибка: Команда & quot; php ../bin/console app: elhibited-user a: 1: {s: 4: & quot; test & quot ;; s: 4: & quot; test & quot ;;} & quot; не смогли.

user9403257 13.06.2018 16:19

Возможно, потребуется немного кодирования: php.net/manual/en/function.base64-encode.php Тот факт, что это оказалось проблемой, вероятно, указывает на то, что вам не следует этого делать.

Cerad 13.06.2018 16:26

Оно работает !!! Спасибо, Cerad! :)

user9403257 13.06.2018 16:48

Если вам нужна команда, я бы предложил использовать систему очередей, такую ​​как rabbit или что-то еще, и позволить потребителю сделать это: вы заполняете (так называемое) «сообщение» массивом, а затем отправляете (или публикуете) сообщение в очередь.

DonCallisto 13.06.2018 18:19
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
7
110
0

Другие вопросы по теме