Example #1
0
 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>';
 }