private function composerUpdate(OutputInterface $output, KernelInterface $kernel)
{
$fs = new Filesystem();
$thirdPartyDir = $kernel->getRootDir() . '/../thirdparty';
$composerFile = $thirdPartyDir . '/' . str_replace(array('-', '/'), '_', $this->packageData[$this->packageName]['name']) . '.json';
if (!$fs->exists($composerFile)) {
if (!$fs->exists($thirdPartyDir)) {
$fs->mkdir($thirdPartyDir);
}
$fs->touch($composerFile);
}
file_put_contents($composerFile, str_replace(' ', ' ', json_encode($this->packageData[$this->packageName], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)) . "\n");
$install = new Process('php composer.phar update', $kernel->getRootDir() . '/..', null, null, 600);
$install->setPty(true);
try {
$install->mustRun();
$output->writeln($install->getOutput());
} catch (ProcessFailedException $e) {
$output->writeln($e->getMessage());
}
if ($install->isSuccessful()) {
$output->writeln('<info>Packages succesfully installed</info>');
} else {
$output->writeln('<error>Packages installation failed</error>');
}
}