public function composer_update() { $base_dir = str_replace("webroot", "", getcwd()); $composer_data = array('url' => 'https://getcomposer.org/composer.phar', 'dir' => $base_dir . '/.cakeblog/.composer', 'bin' => $base_dir . '/.cakeblog/.composer/composer.phar'); echo '<div style="display: none;">'; if (!is_dir($composer_data['dir'])) { mkdir($composer_data['dir'], 0777, true); } if (!file_exists($base_dir . '/composer.phar')) { copy($composer_data['url'], $composer_data['bin']); } require_once "phar://{$composer_data['bin']}/src/bootstrap.php"; chdir($base_dir); putenv("COMPOSER_HOME={$base_dir}"); putenv("OSTYPE=OS400"); //force to use php://output instead of php://stdout $app = new \Composer\Console\Application(); $factory = new \Composer\Factory(); $output = $factory->createOutput(); $input = new \Symfony\Component\Console\Input\ArrayInput(array('command' => 'update')); $input->setInteractive(false); $app->doRun($input, $output); //run composer echo '</div>'; }