X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FApp%2FPage.php;h=0d7b1643635cff55cab6248a8ff96c464f245fb8;hb=384fe562a8dff1bbc584c17e78c4f79bf3d5b7e9;hp=7019d45985859d5e18dddbf534e470bf7cd027ec;hpb=537b74f3079a046750bc210bbd9e51c1187b361d;p=friendica.git diff --git a/src/App/Page.php b/src/App/Page.php index 7019d45985..0d7b164363 100644 --- a/src/App/Page.php +++ b/src/App/Page.php @@ -1,6 +1,6 @@ isNormal()) { Hook::callAll('page_content_top', $this->page['content']); } - $this->page['content'] .= $response->getContent(); + $this->page['content'] .= (string)$response->getBody(); } /** @@ -374,19 +374,31 @@ class Page implements ArrayAccess /** * Directly exit with the current response (include setting all headers) * - * @param IRespondToRequests $response + * @param ResponseInterface $response */ - public function exit(IRespondToRequests $response) + public function exit(ResponseInterface $response) { + header(sprintf("HTTP/%s %s %s", + $response->getProtocolVersion(), + $response->getStatusCode(), + $response->getReasonPhrase()) + ); + foreach ($response->getHeaders() as $key => $header) { + if (is_array($header)) { + $header_str = implode(',', $header); + } else { + $header_str = $header; + } + if (empty($key)) { - header($header); + header($header_str); } else { - header("$key: $header"); + header("$key: $header_str"); } } - echo $response->getContent(); + echo $response->getBody(); } /** @@ -396,14 +408,14 @@ class Page implements ArrayAccess * @param BaseURL $baseURL The Friendica Base URL * @param Arguments $args The Friendica App arguments * @param Mode $mode The current node mode - * @param IRespondToRequests $response The Response of the module class, including type, content & headers + * @param ResponseInterface $response The Response of the module class, including type, content & headers * @param L10n $l10n The l10n language class * @param IManageConfigValues $config The Configuration of this node * @param IManagePersonalConfigValues $pconfig The personal/user configuration * * @throws HTTPException\InternalServerErrorException|HTTPException\ServiceUnavailableException */ - public function run(App $app, BaseURL $baseURL, Arguments $args, Mode $mode, IRespondToRequests $response, L10n $l10n, Profiler $profiler, IManageConfigValues $config, IManagePersonalConfigValues $pconfig) + public function run(App $app, BaseURL $baseURL, Arguments $args, Mode $mode, ResponseInterface $response, L10n $l10n, Profiler $profiler, IManageConfigValues $config, IManagePersonalConfigValues $pconfig) { $moduleName = $args->getModuleName(); @@ -414,7 +426,6 @@ class Page implements ArrayAccess */ $timestamp = microtime(true); $this->initContent($response, $mode); - $profiler->set(microtime(true) - $timestamp, 'content'); // Load current theme info after module has been initialized as theme could have been set in module $currentTheme = $app->getCurrentTheme(); @@ -442,6 +453,8 @@ class Page implements ArrayAccess */ $this->initFooter($app, $mode, $l10n); + $profiler->set(microtime(true) - $timestamp, 'aftermath'); + if (!$mode->isAjax()) { Hook::callAll('page_end', $this->page['content']); } @@ -453,10 +466,16 @@ class Page implements ArrayAccess } foreach ($response->getHeaders() as $key => $header) { + if (is_array($header)) { + $header_str = implode(',', $header); + } else { + $header_str = $header; + } + if (empty($key)) { - header($header); + header($header_str); } else { - header("$key: $header"); + header("$key: $header_str"); } }