public function postAction() { if (!Input::has('action') || !Input::has('actionID')) { return Response::make('Improper Request', 401); } $action = Input::get('action'); $fields = Input::get('fields'); foreach ($fields as $key => $value) { switch ($key) { case 'prefer': $fields['prefer-' . $value] = null; unset($fields[$key]); break; case 'packages': $count = count($value); $packages = null; if ($count == 1 && !in_array($action, array('require', 'remove'))) { foreach ($value as $package) { $fields['package'] = $package; } } elseif ($count) { foreach ($value as $package) { $packages[] = $package; } } $fields['packages'] = $packages; break; case 'devPackages': $count = count($value); $packages = null; if ($count) { foreach ($value as $package => $version) { $packages[] = $package . ':' . $version; } } unset($fields['devPackages']); $fields['packages'] = $packages; break; } } $logDirectory = storage_path() . '/logs/ComposerUI'; if (!File::exists($logDirectory)) { File::makeDirectory($logDirectory); } else { if (!File::isDirectory($logDirectory)) { File::delete($logDirectory); File::makeDirectory($logDirectory); } } $outputFile = $logDirectory . '/' . Input::get('actionID') . '-output'; $output = new StreamOutput(fopen($outputFile, 'w'), StreamOutput::VERBOSITY_NORMAL, false, new HtmlOutputFormatter()); $composer = new ComposerUI(Session::get("ComposerUI.workingDir"), $output); var_dump($fields); File::put($logDirectory . '/' . Input::get('actionID') . '-status', 'working'); $response = Response::json($composer->run($action, $fields)); File::put($logDirectory . '/' . Input::get('actionID') . '-status', 'complete'); return $response; }
public function testRemoveDev() { $tempDir = $this->testInstall(); $app = new ComposerUI($tempDir); $vendorDir = $tempDir . DIRECTORY_SEPARATOR . 'vendor'; $this->assertTrue($app->remove(array("phpunit/phpunit"), true)); $this->assertFileExists($vendorDir); $this->assertFileExists($vendorDir . DIRECTORY_SEPARATOR . 'seld' . DIRECTORY_SEPARATOR . 'jsonlint'); $this->assertFileNotExists($vendorDir . DIRECTORY_SEPARATOR . 'phpunit' . DIRECTORY_SEPARATOR . 'phpunit'); }