public function setStatus($iStatus) { if (!HttpResponseType::isValidStatus($iStatus)) { throw new ExceptionResponse('[' . $iStatus . '] is not a valid ' . $this->getServerProtocol() . ' status'); } $this->iStatus = $iStatus; }
public function testBasicIsValidStatus() { $Mirror = new \ReflectionClass(HttpResponseType::class); $MirrorProperty = $Mirror->getProperty('aStatusList'); $MirrorProperty->setAccessible(\ReflectionProperty::IS_PUBLIC); $aStatuses = $MirrorProperty->getValue(); for ($i = 0; $i < 600; $i++) { if (array_key_exists($i, $aStatuses)) { $this->assertTrue(HttpResponseType::isValidStatus($i)); } else { $this->assertFalse(HttpResponseType::isValidStatus($i)); } } }
/** * @param int $iStatus */ public function setResponseStatus($iStatus) { if (HttpResponseType::isValidStatus($iStatus)) { $this->iHttpStatus = $iStatus; } }
/** * @param \Exception $e * @param HttpRequestA $oRequest * @return HttpResponseA * @throws ExceptionPath * @throws ExceptionResponse */ public function getErrorResponse(\Exception $e, $oRequest = null) { $oResponse = vsc::getEnv()->getHttpResponse(); $oProcessor = new ErrorProcessor($e); /* @var ControllerMap $oMyMap */ $oMyMap = $this->getMap(); $oMyMap->setMainTemplatePath(VSC_RES_PATH . 'templates'); $oMyMap->setMainTemplate('main.php'); if (!HttpRequestA::isValid($oRequest)) { $oRequest = vsc::getEnv()->getHttpRequest(); } /** @var ErrorModel $oModel */ $oModel = $oProcessor->handleRequest($oRequest); $iCode = $oModel->getHttpStatus(); if (HttpResponseType::isValidStatus($iCode)) { $oResponse->setStatus($iCode); } else { $oResponse->setStatus(500); } // we didn't set any special view // this means that the developer needs to provide his own views $oView = $this->getView(); /* @var ProcessorMap $oMap */ $oMap = $oProcessor->getMap(); $oMap->merge($oMyMap); $oProcessorResponse = $oMap->getResponse(); if (HttpResponseA::isValid($oProcessorResponse)) { $oResponse = $oProcessorResponse; } // setting the processor map $oView->setMap($oMap); if (ControllerMap::isValid($oMyMap)) { $oView->setMainTemplate($oMyMap->getMainTemplatePath() . DIRECTORY_SEPARATOR . $oView->getViewFolder() . DIRECTORY_SEPARATOR . $oMyMap->getMainTemplate()); } $oView->setModel($oModel); $oResponse->setView($oView); $aHeaders = $oMap->getHeaders(); if (count($aHeaders) > 0) { foreach ($aHeaders as $sName => $sHeader) { $oResponse->addHeader($sName, $sHeader); } } return $oResponse; }