While reviewing the code, I noticed something that may need clarification.
In page classes, terminate() can set:
$this->Response = new RedirectResponse(GetUrl($url), Config("REDIRECT_STATUS_CODE"));
However, in BaseController::runPage(), $page->Response is only checked before page rendering:
if (($response = $page->Response) instanceof Response) {
...
$page->terminate();
}
Later, terminate() is called again, but I cannot find any code that re-reads $page->Response after terminate() has executed.
From my reading, if terminate() creates a new RedirectResponse, that response does not appear to be assigned back to the controller's $response variable and therefore may never be returned.
Am I missing another location where $page->Response is consumed after terminate() runs, or is the Response created inside terminate() no longer used in the Symfony-based architecture?