Команда Symfony с setContainer в контроллере - PullRequest
1 голос
/ 20 мая 2019

У меня есть команда symfony 4, и я собираюсь связать их с входной сущностью Project

Я переместил команду под представителем (src / Appbundle / Service / CloneProject) затем в контроллере у меня есть setcontainer для изменения содержимого ввода в id моего проекта, но есть

namespace App\AppBundle\Service\CloneServiceCommand;
public function execute(InputInterface $input, OutputInterface $output)
    {
       
        $projectId = $input->getArgument('projectId');

        $project = $this->projectManager->findOneBy(['id' => $projectId]);

        if (!$project instanceof \App\Entity\Project) {
            throw new \Exception('Project not found');
        }
        $output->writeln('<info>Clone project</info>');

        $nameProject = $project->getName();
        $urlProject = $project->getUrl();
        $tokenProject = $project->getTokenProject();

        $pathProject = '/home/ke/WorkSpaceProjects/'. $nameProject ;
        echo $pathProject;

        $process = new Process('git clone https://gitlab-ci-token:' . $tokenProject . "@" . $urlProject . " " . "/home/ke/WorkSpaceProjects/" . $nameProject);
        $process->run();
    }

в моем контроллере

    public function postAction(Request $request, Validator $validator)
    {
        $data = $request->request->all();
        /** @var Project $project */
        $project = new Project();
        $validator->validateForm(ProjectType::class, $data, $project);
        //dump($project);
        $project = $validator->validateForm(ProjectType::class, $data)->getData();
        //dump($project);
        $projectId = $project->getId();
        $command = new CloneService($this->projectManager);
        $command->setContainer($this->container);
        $input = new ArrayInput(array('projectId' => $projectId));
        $output = new NullOutput();
        $command->run($input, $output);

        $this->projectManager->saveProject($project);

        return new ApiCreatedResponse(['project' => $project]);
    }

моя проблема неопределена setContainer в моем контроллереПроект

1 Ответ

0 голосов
/ 21 мая 2019

Зарегистрируйте свою команду в services.yml с тегом console.command, и у вас будет доступ к DI

https://symfony.com/doc/current/console/commands_as_services.html

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