phpBinary = $phpFinder->find(false) ?: 'php'; } protected function runPhpCommand(OutputInterface $output, array $command): void { $command = [$this->phpBinary, ...$command, '--no-interaction']; $this->processRunner->run($output, $command); } final protected function execute(InputInterface $input, OutputInterface $output): int { return CommandUtils::executeWithLock( $this->locker, LockConfig::blocking($this->getName() ?? static::class), new SymfonyStyle($input, $output), fn () => $this->lockedExecute($input, $output), ); } abstract protected function lockedExecute(InputInterface $input, OutputInterface $output): int; }