2011-01-16 13:51:39 -08:00
|
|
|
<?php
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @group aphront
|
|
|
|
*/
|
2012-12-18 16:11:07 -08:00
|
|
|
abstract class AphrontController extends Phobject {
|
2011-01-16 13:51:39 -08:00
|
|
|
|
|
|
|
private $request;
|
2012-08-05 14:03:39 -07:00
|
|
|
private $currentApplication;
|
2013-05-30 14:09:02 -07:00
|
|
|
private $delegatingController;
|
|
|
|
|
|
|
|
|
|
|
|
public function setDelegatingController(
|
|
|
|
AphrontController $delegating_controller) {
|
|
|
|
$this->delegatingController = $delegating_controller;
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getDelegatingController() {
|
|
|
|
return $this->delegatingController;
|
|
|
|
}
|
2011-01-16 13:51:39 -08:00
|
|
|
|
2011-01-26 13:21:12 -08:00
|
|
|
public function willBeginExecution() {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2011-01-16 13:51:39 -08:00
|
|
|
public function willProcessRequest(array $uri_data) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2012-08-05 14:12:43 -07:00
|
|
|
public function didProcessRequest($response) {
|
|
|
|
return $response;
|
|
|
|
}
|
|
|
|
|
2011-01-16 13:51:39 -08:00
|
|
|
abstract public function processRequest();
|
|
|
|
|
|
|
|
final public function __construct(AphrontRequest $request) {
|
|
|
|
$this->request = $request;
|
|
|
|
}
|
|
|
|
|
|
|
|
final public function getRequest() {
|
|
|
|
return $this->request;
|
|
|
|
}
|
|
|
|
|
2011-02-27 19:47:22 -08:00
|
|
|
final public function delegateToController(AphrontController $controller) {
|
2013-05-30 14:09:02 -07:00
|
|
|
$controller->setDelegatingController($this);
|
|
|
|
|
|
|
|
$application = $this->getCurrentApplication();
|
|
|
|
if ($application) {
|
|
|
|
$controller->setCurrentApplication($application);
|
|
|
|
}
|
|
|
|
|
2011-02-27 19:47:22 -08:00
|
|
|
return $controller->processRequest();
|
|
|
|
}
|
|
|
|
|
2012-08-05 14:03:39 -07:00
|
|
|
final public function setCurrentApplication(
|
|
|
|
PhabricatorApplication $current_application) {
|
|
|
|
|
|
|
|
$this->currentApplication = $current_application;
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
final public function getCurrentApplication() {
|
|
|
|
return $this->currentApplication;
|
|
|
|
}
|
|
|
|
|
2011-01-16 13:51:39 -08:00
|
|
|
}
|