Cleaning up unnecessary use of 'die' and 'exit'

This commit is contained in:
Dan Cryer 2015-02-12 12:37:56 +00:00
parent 36e3c622c8
commit 489f71b8c2
13 changed files with 188 additions and 106 deletions

View file

@ -59,7 +59,9 @@ class InstallCommand extends Command
{
$this->configFilePath = $input->getOption('config-path');
$this->verifyNotInstalled($output);
if (!$this->verifyNotInstalled($output)) {
return;
}
$output->writeln('');
$output->writeln('<info>******************</info>');
@ -346,7 +348,6 @@ class InstallCommand extends Command
} catch (\Exception $ex) {
$output->writeln('<error>'.Lang::get('failed_to_create').'</error>');
$output->writeln('<error>' . $ex->getMessage() . '</error>');
die;
}
}
@ -361,6 +362,7 @@ class InstallCommand extends Command
/**
* @param OutputInterface $output
* @return bool
*/
protected function verifyNotInstalled(OutputInterface $output)
{
@ -370,8 +372,10 @@ class InstallCommand extends Command
if (!empty($content)) {
$output->writeln('<error>'.Lang::get('config_exists').'</error>');
$output->writeln('<error>'.Lang::get('update_instead').'</error>');
die;
return false;
}
}
return true;
}
}

View file

@ -60,7 +60,7 @@ class PollCommand extends Command
if (!$token) {
$this->logger->error(Lang::get('no_token'));
exit();
return;
}
$buildStore = Factory::getStore('Build');

View file

@ -49,7 +49,9 @@ class UpdateCommand extends Command
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
$this->verifyInstalled($output);
if (!$this->verifyInstalled($output)) {
return;
}
$output->write(Lang::get('updating_phpci'));
@ -63,14 +65,16 @@ class UpdateCommand extends Command
if (!file_exists(PHPCI_DIR . 'PHPCI/config.yml')) {
$output->writeln('<error>'.Lang::get('not_installed').'</error>');
$output->writeln('<error>'.Lang::get('install_instead').'</error>');
die;
return false;
}
$content = file_get_contents(PHPCI_DIR . 'PHPCI/config.yml');
if (empty($content)) {
$output->writeln('<error>'.Lang::get('not_installed').'</error>');
$output->writeln('<error>'.Lang::get('install_instead').'</error>');
die;
return false;
}
return true;
}
}

View file

@ -92,6 +92,10 @@ class Controller extends \b8\Controller
$this->setView($action);
$response = parent::handleAction($action, $actionParams);
if ($response instanceof Response) {
return $response;
}
if (is_string($response)) {
$this->controllerView->content = $response;
} elseif (isset($this->view)) {

View file

@ -11,6 +11,7 @@ namespace PHPCI\Controller;
use b8;
use b8\Exception\HttpException\NotFoundException;
use b8\Http\Response\JsonResponse;
use PHPCI\BuildFactory;
use PHPCI\Helper\Lang;
use PHPCI\Model\Build;
@ -61,7 +62,7 @@ class BuildController extends \PHPCI\Controller
$this->view->plugins = $this->getUiPlugins();
$this->view->build = $build;
$this->view->data = $this->getBuildData($build);
$this->view->data = json_encode($this->getBuildData($build));
$this->layout->title = Lang::get('build_n', $buildId);
$this->layout->subtitle = $build->getProjectTitle();
@ -107,7 +108,17 @@ class BuildController extends \PHPCI\Controller
*/
public function data($buildId)
{
die($this->getBuildData(BuildFactory::getBuildById($buildId)));
$response = new JsonResponse();
$build = BuildFactory::getBuildById($buildId);
if (!$build) {
$response->setResponseCode(404);
$response->setContent(array());
return $response;
}
$response->setContent($this->getBuildData($build));
return $response;
}
/**
@ -124,7 +135,9 @@ class BuildController extends \PHPCI\Controller
$data = $this->buildStore->getMeta($key, $build->getProjectId(), $buildId, $build->getBranch(), $numBuilds);
}
die(json_encode($data));
$response = new JsonResponse();
$response->setContent($data);
return $response;
}
/**
@ -139,7 +152,7 @@ class BuildController extends \PHPCI\Controller
$data['started'] = !is_null($build->getStarted()) ? $build->getStarted()->format('Y-m-d H:i:s') : null;
$data['finished'] = !is_null($build->getFinished()) ? $build->getFinished()->format('Y-m-d H:i:s') : null;
return json_encode($data);
return $data;
}
/**
@ -155,8 +168,9 @@ class BuildController extends \PHPCI\Controller
$build = $this->buildService->createDuplicateBuild($copy);
header('Location: '.PHPCI_URL.'build/view/' . $build->getId());
exit;
$response = new b8\Http\Response\RedirectResponse();
$response->setHeader('Location', PHPCI_URL.'build/view/' . $build->getId());
return $response;
}
/**
@ -174,8 +188,9 @@ class BuildController extends \PHPCI\Controller
$this->buildService->deleteBuild($build);
header('Location: '.PHPCI_URL.'project/view/' . $build->getProjectId());
exit;
$response = new b8\Http\Response\RedirectResponse();
$response->setHeader('Location', PHPCI_URL.'project/view/' . $build->getProjectId());
return $response;
}
/**
@ -200,9 +215,9 @@ class BuildController extends \PHPCI\Controller
'running' => $this->formatBuilds($this->buildStore->getByStatus(Build::STATUS_RUNNING)),
);
if ($this->request->isAjax()) {
die(json_encode($rtn));
}
$response = new JsonResponse();
$response->setContent($rtn);
return $response;
}
/**

View file

@ -53,7 +53,7 @@ class BuildStatusController extends \PHPCI\Controller
$status = 'passing';
if (!$project->getAllowPublicStatus()) {
die();
return null;
}
if (isset($project) && $project instanceof Project) {
@ -76,6 +76,13 @@ class BuildStatusController extends \PHPCI\Controller
public function image($projectId)
{
$status = $this->getStatus($projectId);
if (is_null($status)) {
$response = new b8\Http\Response\RedirectResponse();
$response->setHeader('Location', '/');
return $response;
}
$color = ($status == 'passing') ? 'green' : 'red';
header('Content-Type: image/svg+xml');

View file

@ -68,7 +68,8 @@ class HomeController extends \PHPCI\Controller
*/
public function latest()
{
die($this->getLatestBuildsHtml());
$this->response->setContent($this->getLatestBuildsHtml());
return $this->response;
}
/**
@ -77,7 +78,8 @@ class HomeController extends \PHPCI\Controller
public function summary()
{
$projects = $this->projectStore->getWhere(array(), 50, 0, array(), array('title' => 'ASC'));
die($this->getSummaryHtml($projects));
$this->response->setContent($this->getSummaryHtml($projects));
return $this->response;
}
/**

View file

@ -82,16 +82,18 @@ class PluginController extends \PHPCI\Controller
$package = $this->getParam('package', null);
$json = $this->getComposerJson();
$response = new b8\Http\Response\RedirectResponse();
if (!in_array($package, $this->required)) {
unset($json['require'][$package]);
$this->setComposerJson($json);
header('Location: ' . PHPCI_URL . 'plugin?r=' . $package);
die;
$response->setHeader('Location', PHPCI_URL . 'plugin?r=' . $package);
return $response;
}
header('Location: ' . PHPCI_URL);
die;
$response->setHeader('Location', PHPCI_URL);
return $response;
}
/**
@ -108,8 +110,9 @@ class PluginController extends \PHPCI\Controller
$json['require'][$package] = $version;
$this->setComposerJson($json);
header('Location: ' . PHPCI_URL . 'plugin?w=' . $package);
die;
$response = new b8\Http\Response\RedirectResponse();
$response->setHeader('Location', PHPCI_URL . 'plugin?w=' . $package);
return $response;
}
/**
@ -181,7 +184,9 @@ class PluginController extends \PHPCI\Controller
$http->setHeaders(array('User-Agent: PHPCI/1.0 (+https://www.phptesting.org)'));
$res = $http->get('https://packagist.org/search.json', array('q' => $searchQuery));
die(json_encode($res['body']));
$response = new b8\Http\Response\JsonResponse();
$response->setContent($res['body']);
return $response;
}
/**
@ -194,6 +199,8 @@ class PluginController extends \PHPCI\Controller
$http->setHeaders(array('User-Agent: PHPCI/1.0 (+https://www.phptesting.org)'));
$res = $http->get('https://packagist.org/packages/'.$name.'.json');
die(json_encode($res['body']));
$response = new b8\Http\Response\JsonResponse();
$response->setContent($res['body']);
return $response;
}
}

View file

@ -81,8 +81,9 @@ class ProjectController extends \PHPCI\Controller
$pages = $builds[1] == 0 ? 1 : ceil($builds[1] / $per_page);
if ($page > $pages) {
header('Location: '.PHPCI_URL.'project/view/'.$projectId);
die;
$response = new b8\Http\Response\RedirectResponse();
$response->setHeader('Location', PHPCI_URL.'project/view/'.$projectId);
return $response;
}
$this->view->builds = $builds[0];
@ -118,8 +119,9 @@ class ProjectController extends \PHPCI\Controller
$email = $_SESSION['phpci_user']->getEmail();
$build = $this->buildService->createBuild($project, null, urldecode($branch), $email);
header('Location: '.PHPCI_URL.'build/view/' . $build->getId());
exit;
$response = new b8\Http\Response\RedirectResponse();
$response->setHeader('Location', PHPCI_URL.'build/view/' . $build->getId());
return $response;
}
/**
@ -132,8 +134,9 @@ class ProjectController extends \PHPCI\Controller
$project = $this->projectStore->getById($projectId);
$this->projectService->deleteProject($project);
header('Location: '.PHPCI_URL);
exit;
$response = new b8\Http\Response\RedirectResponse();
$response->setHeader('Location', PHPCI_URL);
return $response;
}
/**
@ -143,7 +146,9 @@ class ProjectController extends \PHPCI\Controller
{
$branch = $this->getParam('branch', '');
$builds = $this->getLatestBuildsHtml($projectId, urldecode($branch));
die($builds[0]);
$this->response->setContent($builds[0]);
return $this->response;
}
/**
@ -220,8 +225,10 @@ class ProjectController extends \PHPCI\Controller
);
$project = $this->projectService->createProject($title, $type, $reference, $options);
header('Location: '.PHPCI_URL.'project/view/' . $project->getId());
die;
$response = new b8\Http\Response\RedirectResponse();
$response->setHeader('Location', PHPCI_URL.'project/view/' . $project->getId());
return $response;
}
}
@ -282,8 +289,9 @@ class ProjectController extends \PHPCI\Controller
$project = $this->projectService->updateProject($project, $title, $type, $reference, $options);
header('Location: '.PHPCI_URL.'project/view/' . $project->getId());
die;
$response = new b8\Http\Response\RedirectResponse();
$response->setHeader('Location', PHPCI_URL.'project/view/' . $project->getId());
return $response;
}
/**
@ -366,7 +374,10 @@ class ProjectController extends \PHPCI\Controller
protected function githubRepositories()
{
$github = new Github();
die(json_encode($github->getRepositories()));
$response = new b8\Http\Response\JsonResponse();
$response->setContent($github->getRepositories());
return $response;
}
/**

View file

@ -47,8 +47,9 @@ class SessionController extends \PHPCI\Controller
if ($user && password_verify($this->getParam('password', ''), $user->getHash())) {
$_SESSION['phpci_user_id'] = $user->getId();
header('Location: ' . $this->getLoginRedirect());
die;
$response = new b8\Http\Response\RedirectResponse();
$response->setHeader('Location', $this->getLoginRedirect());
return $response;
} else {
$isLoginFailure = true;
}
@ -92,8 +93,10 @@ class SessionController extends \PHPCI\Controller
unset($_SESSION['phpci_user_id']);
session_destroy();
header('Location: ' . PHPCI_URL);
die;
$response = new b8\Http\Response\RedirectResponse();
$response->setHeader('Location', PHPCI_URL);
return $response;
}
/**
@ -151,8 +154,9 @@ class SessionController extends \PHPCI\Controller
$_SESSION['phpci_user'] = $this->userStore->save($user);
$_SESSION['phpci_user_id'] = $user->getId();
header('Location: ' . PHPCI_URL);
die;
$response = new b8\Http\Response\RedirectResponse();
$response->setHeader('Location', PHPCI_URL);
return $response;
}
$this->view->id = $userId;

View file

@ -102,13 +102,15 @@ class SettingsController extends Controller
$this->settings['phpci']['github']['secret'] = $this->getParam('githubsecret', '');
$error = $this->storeSettings();
$response = new b8\Http\Response\RedirectResponse();
if ($error) {
header('Location: ' . PHPCI_URL . 'settings?saved=2');
$response->setHeader('Location', PHPCI_URL . 'settings?saved=2');
} else {
header('Location: ' . PHPCI_URL . 'settings?saved=1');
$response->setHeader('Location', PHPCI_URL . 'settings?saved=1');
}
die;
return $response;
}
/**
@ -123,13 +125,15 @@ class SettingsController extends Controller
$error = $this->storeSettings();
$response = new b8\Http\Response\RedirectResponse();
if ($error) {
header('Location: ' . PHPCI_URL . 'settings?saved=2');
$response->setHeader('Location', PHPCI_URL . 'settings?saved=2');
} else {
header('Location: ' . PHPCI_URL . 'settings?saved=1');
$response->setHeader('Location', PHPCI_URL . 'settings?saved=1');
}
die;
return $response;
}
/**
@ -143,13 +147,15 @@ class SettingsController extends Controller
$error = $this->storeSettings();
$response = new b8\Http\Response\RedirectResponse();
if ($error) {
header('Location: ' . PHPCI_URL . 'settings?saved=2');
$response->setHeader('Location', PHPCI_URL . 'settings?saved=2');
} else {
header('Location: ' . PHPCI_URL . 'settings?saved=1');
$response->setHeader('Location', PHPCI_URL . 'settings?saved=1');
}
die;
return $response;
}
/**
@ -162,13 +168,15 @@ class SettingsController extends Controller
$this->settings['phpci']['basic'] = $this->getParams();
$error = $this->storeSettings();
$response = new b8\Http\Response\RedirectResponse();
if ($error) {
header('Location: ' . PHPCI_URL . 'settings?saved=2');
$response->setHeader('Location', PHPCI_URL . 'settings?saved=2');
} else {
header('Location: ' . PHPCI_URL . 'settings?saved=1');
$response->setHeader('Location', PHPCI_URL . 'settings?saved=1');
}
die;
return $response;
}
/**
@ -183,13 +191,15 @@ class SettingsController extends Controller
$error = $this->storeSettings();
$response = new b8\Http\Response\RedirectResponse();
if ($error) {
header('Location: ' . PHPCI_URL . 'settings?saved=2');
$response->setHeader('Location', PHPCI_URL . 'settings?saved=2');
} else {
header('Location: ' . PHPCI_URL . 'settings?saved=1');
$response->setHeader('Location', PHPCI_URL . 'settings?saved=1');
}
die;
return $response;
}
/**
@ -212,14 +222,15 @@ class SettingsController extends Controller
$this->settings['phpci']['github']['token'] = $resp['access_token'];
$this->storeSettings();
header('Location: ' . PHPCI_URL . 'settings?linked=1');
die;
$response = new b8\Http\Response\RedirectResponse();
$response->setHeader('Location', PHPCI_URL . 'settings?linked=1');
return $response;
}
}
header('Location: ' . PHPCI_URL . 'settings?linked=2');
die;
$response = new b8\Http\Response\RedirectResponse();
$response->setHeader('Location', PHPCI_URL . 'settings?linked=2');
return $response;
}
/**

View file

@ -175,8 +175,9 @@ class UserController extends Controller
$this->userService->createUser($name, $email, $password, $isAdmin);
header('Location: '.PHPCI_URL.'user');
die;
$response = new b8\Http\Response\RedirectResponse();
$response->setHeader('Location', PHPCI_URL . 'user');
return $response;
}
/**
@ -215,8 +216,9 @@ class UserController extends Controller
$this->userService->updateUser($user, $name, $email, $password, $isAdmin);
header('Location: '.PHPCI_URL.'user');
die;
$response = new b8\Http\Response\RedirectResponse();
$response->setHeader('Location', PHPCI_URL . 'user');
return $response;
}
/**
@ -288,7 +290,8 @@ class UserController extends Controller
$this->userService->deleteUser($user);
header('Location: '.PHPCI_URL.'user');
die;
$response = new b8\Http\Response\RedirectResponse();
$response->setHeader('Location', PHPCI_URL . 'user');
return $response;
}
}

View file

@ -55,6 +55,9 @@ class WebhookController extends \PHPCI\Controller
*/
public function bitbucket($project)
{
$response = new b8\Http\Response\JsonResponse();
$response->setContent(array('status' => 'ok'));
$payload = json_decode($this->getParam('payload'), true);
foreach ($payload['commits'] as $commit) {
@ -65,13 +68,13 @@ class WebhookController extends \PHPCI\Controller
$this->createBuild($project, $commit['raw_node'], $commit['branch'], $email, $commit['message']);
} catch (\Exception $ex) {
header('HTTP/1.1 500 Internal Server Error');
header('Ex: ' . $ex->getMessage());
die('FAIL');
$response->setResponseCode(500);
$response->setContent(array('status' => 'failed', 'error' => $ex->getMessage()));
break;
}
}
die('OK');
return $response;
}
/**
@ -81,6 +84,9 @@ class WebhookController extends \PHPCI\Controller
*/
public function git($project)
{
$response = new b8\Http\Response\JsonResponse();
$response->setContent(array('status' => 'ok'));
$branch = $this->getParam('branch');
$commit = $this->getParam('commit');
$commitMessage = $this->getParam('message');
@ -105,12 +111,11 @@ class WebhookController extends \PHPCI\Controller
$this->createBuild($project, $commit, $branch, $committer, $commitMessage);
} catch (\Exception $ex) {
header('HTTP/1.1 400 Bad Request');
header('Ex: ' . $ex->getMessage());
die('FAIL');
$response->setResponseCode(500);
$response->setContent(array('status' => 'failed', 'error' => $ex->getMessage()));
}
die('OK');
return $response;
}
/**
@ -118,6 +123,9 @@ class WebhookController extends \PHPCI\Controller
*/
public function github($project)
{
$response = new b8\Http\Response\JsonResponse();
$response->setContent(array('status' => 'ok'));
switch ($_SERVER['CONTENT_TYPE']) {
case 'application/json':
$payload = json_decode(file_get_contents('php://input'), true);
@ -128,22 +136,22 @@ class WebhookController extends \PHPCI\Controller
break;
default:
header('HTTP/1.1 400 Bad Request');
die('Request content type not supported');
$response->setResponseCode(401);
$response->setContent(array('status' => 'failed', 'error' => 'Content type not supported.'));
return $response;
}
// Handle Pull Request web hooks:
if (array_key_exists('pull_request', $payload)) {
return $this->githubPullRequest($project, $payload);
return $this->githubPullRequest($project, $payload, $response);
}
// Handle Push web hooks:
if (array_key_exists('commits', $payload)) {
return $this->githubCommitRequest($project, $payload);
return $this->githubCommitRequest($project, $payload, $response);
}
header('HTTP/1.1 200 OK');
die('This request type is not supported, this is not an error.');
return $response;
}
/**
@ -151,12 +159,12 @@ class WebhookController extends \PHPCI\Controller
* @param $project
* @param array $payload
*/
protected function githubCommitRequest($project, array $payload)
protected function githubCommitRequest($project, array $payload, b8\Http\Response\JsonResponse $response)
{
// Github sends a payload when you close a pull request with a
// non-existant commit. We don't want this.
if (array_key_exists('after', $payload) && $payload['after'] === '0000000000000000000000000000000000000000') {
die('OK');
return $response;
}
try {
@ -182,12 +190,12 @@ class WebhookController extends \PHPCI\Controller
}
} catch (\Exception $ex) {
header('HTTP/1.1 500 Internal Server Error');
header('Ex: ' . $ex->getMessage());
die('FAIL');
$response->setResponseCode(500);
$response->setContent(array('status' => 'failed', 'error' => $ex->getMessage()));
}
die('OK');
return $response;
}
/**
@ -195,11 +203,11 @@ class WebhookController extends \PHPCI\Controller
* @param $projectId
* @param array $payload
*/
protected function githubPullRequest($projectId, array $payload)
protected function githubPullRequest($projectId, array $payload, b8\Http\Response\JsonResponse $response)
{
// We only want to know about open pull requests:
if (!in_array($payload['action'], array('opened', 'synchronize', 'reopened'))) {
die('OK');
return $response;
}
try {
@ -217,9 +225,10 @@ class WebhookController extends \PHPCI\Controller
// Check we got a success response:
if (!$response['success']) {
header('HTTP/1.1 500 Internal Server Error');
header('Ex: Could not get commits, failed API request.');
die('FAIL');
$message = 'Could not get commits, failed API request.';
$response->setResponseCode(500);
$response->setContent(array('status' => 'failed', 'error' => $message));
return $response;
}
foreach ($response['body'] as $commit) {
@ -238,12 +247,11 @@ class WebhookController extends \PHPCI\Controller
$this->createBuild($projectId, $commit['sha'], $branch, $committer, $message, $extra);
}
} catch (\Exception $ex) {
header('HTTP/1.1 500 Internal Server Error');
header('Ex: ' . $ex->getMessage());
die('FAIL');
$response->setResponseCode(500);
$response->setContent(array('status' => 'failed', 'error' => $ex->getMessage()));
}
die('OK');
return $response;
}
/**
@ -251,6 +259,9 @@ class WebhookController extends \PHPCI\Controller
*/
public function gitlab($project)
{
$response = new b8\Http\Response\JsonResponse();
$response->setContent(array('status' => 'ok'));
$payloadString = file_get_contents("php://input");
$payload = json_decode($payloadString, true);
@ -282,12 +293,11 @@ class WebhookController extends \PHPCI\Controller
}
} catch (\Exception $ex) {
header('HTTP/1.1 500 Internal Server Error');
header('Ex: ' . $ex->getMessage());
die('FAIL');
$response->setResponseCode(500);
$response->setContent(array('status' => 'failed', 'error' => $ex->getMessage()));
}
die('OK');
return $response;
}
/**