本文整理汇总了PHP中TYPO3\Flow\Core\Bootstrap::getActiveRequestHandler方法的典型用法代码示例。如果您正苦于以下问题:PHP Bootstrap::getActiveRequestHandler方法的具体用法?PHP Bootstrap::getActiveRequestHandler怎么用?PHP Bootstrap::getActiveRequestHandler使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TYPO3\Flow\Core\Bootstrap
的用法示例。
在下文中一共展示了Bootstrap::getActiveRequestHandler方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: sendRequest
/**
* Sends the given HTTP request
*
* @param Http\Request $httpRequest
* @return Http\Response
* @throws Http\Exception
* @api
*/
public function sendRequest(Http\Request $httpRequest)
{
$requestHandler = $this->bootstrap->getActiveRequestHandler();
if (!$requestHandler instanceof FunctionalTestRequestHandler) {
throw new Http\Exception('The browser\'s internal request engine has only been designed for use within functional tests.', 1335523749);
}
$this->securityContext->clearContext();
$this->validatorResolver->reset();
$response = new Http\Response();
$requestHandler->setHttpRequest($httpRequest);
$requestHandler->setHttpResponse($response);
$objectManager = $this->bootstrap->getObjectManager();
$baseComponentChain = $objectManager->get(\TYPO3\Flow\Http\Component\ComponentChain::class);
$componentContext = new ComponentContext($httpRequest, $response);
if (version_compare(PHP_VERSION, '6.0.0') >= 0) {
try {
$baseComponentChain->handle($componentContext);
} catch (\Throwable $throwable) {
$this->prepareErrorResponse($throwable, $response);
}
} else {
try {
$baseComponentChain->handle($componentContext);
} catch (\Exception $exception) {
$this->prepareErrorResponse($exception, $response);
}
}
$session = $this->bootstrap->getObjectManager()->get(\TYPO3\Flow\Session\SessionInterface::class);
if ($session->isStarted()) {
$session->close();
}
return $response;
}
示例2: render
/**
* @param string $path
* @return string
* @throws \Exception
*/
public function render($path = NULL)
{
if ($path === NULL) {
$path = '404';
}
/** @var RequestHandler $activeRequestHandler */
$activeRequestHandler = $this->bootstrap->getActiveRequestHandler();
$parentHttpRequest = $activeRequestHandler->getHttpRequest();
$requestPath = $parentHttpRequest->getUri()->getPath();
$language = explode('/', ltrim($requestPath, '/'))[0];
if ($language === 'neos') {
throw new \Exception('NotFoundViewHelper can not be used for neos-routes.', 1435648210);
}
$language = $this->localeDetector->detectLocaleFromLocaleTag($language)->getLanguage();
if ($this->contentDimensionPresetSource->findPresetByUriSegment('language', $language) === NULL) {
$language = '';
}
if ($language !== '') {
$language .= '/';
}
$request = Request::create(new Uri(rtrim($parentHttpRequest->getBaseUri(), '/') . '/' . $language . $path));
$matchingRoute = $this->router->route($request);
if (!$matchingRoute) {
throw new \Exception(sprintf('Uri with path "%s" could not be found.', rtrim($parentHttpRequest->getBaseUri(), '/') . '/' . $language . $path), 1426446160);
}
$response = new Response();
$objectManager = $this->bootstrap->getObjectManager();
$baseComponentChain = $objectManager->get('TYPO3\\Flow\\Http\\Component\\ComponentChain');
$componentContext = new ComponentContext($request, $response);
$baseComponentChain->handle($componentContext);
return $response->getContent();
}
示例3: findOneByActiveRequest
/**
* @return \TYPO3\Neos\Domain\Model\Domain
*/
public function findOneByActiveRequest()
{
$matchingDomain = null;
$activeRequestHandler = $this->bootstrap->getActiveRequestHandler();
if ($activeRequestHandler instanceof \TYPO3\Flow\Http\HttpRequestHandlerInterface) {
$matchingDomain = $this->findOneByHost($activeRequestHandler->getHttpRequest()->getUri()->getHost(), true);
}
return $matchingDomain;
}
示例4: transferCsrfTokenToExtDirectRequests
/**
* Adds a CSRF token as argument in ExtDirect requests
*
* @Flow\Around("method(TYPO3\ExtJS\ExtDirect\Transaction->buildRequest()) && setting(TYPO3.Flow.security.enable)")
* @param \TYPO3\Flow\Aop\JoinPointInterface $joinPoint The current join point
* @return \TYPO3\Flow\Mvc\ActionRequest
*/
public function transferCsrfTokenToExtDirectRequests(\TYPO3\Flow\Aop\JoinPointInterface $joinPoint)
{
$extDirectRequest = $joinPoint->getAdviceChain()->proceed($joinPoint);
$requestHandler = $this->bootstrap->getActiveRequestHandler();
if ($requestHandler instanceof \TYPO3\Flow\Http\HttpRequestHandlerInterface) {
$arguments = $requestHandler->getHttpRequest()->getArguments();
if (isset($arguments['__csrfToken'])) {
$requestArguments = $extDirectRequest->getMainRequest()->getArguments();
$requestArguments['__csrfToken'] = $arguments['__csrfToken'];
$extDirectRequest->getMainRequest()->setArguments($requestArguments);
}
}
return $extDirectRequest;
}
示例5: getHttpRequest
/**
* @return \TYPO3\Flow\Http\Request
*/
protected function getHttpRequest()
{
$requestHandler = $this->bootstrap->getActiveRequestHandler();
if ($requestHandler instanceof \TYPO3\Flow\Http\HttpRequestHandlerInterface) {
return $requestHandler->getHttpRequest();
}
}
示例6: render
/**
* @param string $path
* @return string
* @throws \Exception
*/
public function render($path = NULL)
{
/** @var RequestHandler $activeRequestHandler */
$activeRequestHandler = $this->bootstrap->getActiveRequestHandler();
$parentHttpRequest = $activeRequestHandler->getHttpRequest();
$httpRequest = Request::create(new Uri($parentHttpRequest->getBaseUri() . $path . '.html'));
$matchingRoute = $this->router->route($httpRequest);
if (!$matchingRoute) {
throw new \Exception(sprintf('Uri with path "%s" could not be found.', $parentHttpRequest->getBaseUri() . $path . '.html'), 1426446160);
}
$request = new ActionRequest($parentHttpRequest);
foreach ($matchingRoute as $argumentName => $argumentValue) {
$request->setArgument($argumentName, $argumentValue);
}
$response = new Response($activeRequestHandler->getHttpResponse());
$this->dispatcher->dispatch($request, $response);
return $response->getContent();
}
示例7: setupHttp
/**
* Sets up a virtual browser and web environment for seamless HTTP and MVC
* related tests.
*
* @return void
*/
protected function setupHttp()
{
$this->browser = new \TYPO3\Flow\Http\Client\Browser();
$this->browser->setRequestEngine(new \TYPO3\Flow\Http\Client\InternalRequestEngine());
$this->router = $this->browser->getRequestEngine()->getRouter();
$requestHandler = self::$bootstrap->getActiveRequestHandler();
$requestHandler->setHttpRequest(Request::create(new \TYPO3\Flow\Http\Uri('http://localhost/typo3/flow/test')));
$requestHandler->setHttpResponse(new \TYPO3\Flow\Http\Response());
}
示例8: detectResourcesBaseUri
/**
* Detects the (resources) base URI and stores it as a protected class variable.
*
* $this->resourcesPublishingPath must be set prior to calling this method.
*
* @return void
*/
protected function detectResourcesBaseUri()
{
$requestHandler = $this->bootstrap->getActiveRequestHandler();
if ($requestHandler instanceof \TYPO3\Flow\Http\HttpRequestHandlerInterface) {
$uri = $requestHandler->getHttpRequest()->getBaseUri();
} else {
$uri = '';
}
$this->resourcesBaseUri = $uri . substr($this->resourcesPublishingPath, strlen(FLOW_PATH_WEB));
}
示例9: getHttpRequest
/**
* @return HttpRequest
*/
protected function getHttpRequest()
{
if ($this->httpRequest === NULL) {
$requestHandler = $this->bootstrap->getActiveRequestHandler();
if (!$requestHandler instanceof HttpRequestHandlerInterface) {
return NULL;
}
$this->httpRequest = $requestHandler->getHttpRequest();
}
return $this->httpRequest;
}
示例10: sendRequest
/**
* Sends the given HTTP request
*
* @param Http\Request $httpRequest
* @return Http\Response
* @throws Http\Exception
* @api
*/
public function sendRequest(Http\Request $httpRequest)
{
$requestHandler = $this->bootstrap->getActiveRequestHandler();
if (!$requestHandler instanceof FunctionalTestRequestHandler) {
throw new Http\Exception('The browser\'s internal request engine has only been designed for use within functional tests.', 1335523749);
}
$this->securityContext->clearContext();
$this->validatorResolver->reset();
$response = new Http\Response();
$requestHandler->setHttpRequest($httpRequest);
$requestHandler->setHttpResponse($response);
$objectManager = $this->bootstrap->getObjectManager();
$baseComponentChain = $objectManager->get(\TYPO3\Flow\Http\Component\ComponentChain::class);
$componentContext = new ComponentContext($httpRequest, $response);
try {
$baseComponentChain->handle($componentContext);
} catch (\Exception $exception) {
$pathPosition = strpos($exception->getFile(), 'Packages/');
$filePathAndName = $pathPosition !== FALSE ? substr($exception->getFile(), $pathPosition) : $exception->getFile();
$exceptionCodeNumber = $exception->getCode() > 0 ? '#' . $exception->getCode() . ': ' : '';
$content = PHP_EOL . 'Uncaught Exception in Flow ' . $exceptionCodeNumber . $exception->getMessage() . PHP_EOL;
$content .= 'thrown in file ' . $filePathAndName . PHP_EOL;
$content .= 'in line ' . $exception->getLine() . PHP_EOL . PHP_EOL;
$content .= Debugger::getBacktraceCode($exception->getTrace(), FALSE, TRUE) . PHP_EOL;
if ($exception instanceof Exception) {
$statusCode = $exception->getStatusCode();
} else {
$statusCode = 500;
}
$response->setStatus($statusCode);
$response->setContent($content);
$response->setHeader('X-Flow-ExceptionCode', $exception->getCode());
$response->setHeader('X-Flow-ExceptionMessage', $exception->getMessage());
}
$session = $this->bootstrap->getObjectManager()->get(\TYPO3\Flow\Session\SessionInterface::class);
if ($session->isStarted()) {
$session->close();
}
return $response;
}
示例11: detectResourcesBaseUri
/**
* Detects and returns the website's base URI
*
* @return string The website's base URI
*/
protected function detectResourcesBaseUri()
{
$uri = '';
$requestHandler = $this->bootstrap->getActiveRequestHandler();
if ($requestHandler instanceof HttpRequestHandlerInterface) {
// In functional tests or some other obscure scenarios we might end up without a current HTTP request:
$request = $requestHandler->getHttpRequest();
if ($request instanceof Request) {
$uri = $requestHandler->getHttpRequest()->getBaseUri();
}
}
return (string) $uri;
}
示例12: detectResourcesBaseUri
/**
* Detects and returns the website's absolute base URI
*
* @return string The resolved resource base URI, @see getResourcesBaseUri()
* @throws Exception if the baseUri can't be resolved
*/
protected function detectResourcesBaseUri()
{
if ($this->baseUri !== '' && ($this->baseUri[0] === '/' || strpos($this->baseUri, '://') !== false)) {
return $this->baseUri;
}
$requestHandler = $this->bootstrap->getActiveRequestHandler();
if ($requestHandler instanceof HttpRequestHandlerInterface) {
return $requestHandler->getHttpRequest()->getBaseUri() . $this->baseUri;
}
if ($this->httpBaseUri === null) {
throw new Exception(sprintf('The base URI for resources could not be detected. Please specify the "TYPO3.Flow.http.baseUri" setting or use an absolute "baseUri" option for target "%s".', $this->name), 1438093977);
}
return $this->httpBaseUri . $this->baseUri;
}
示例13: setupHttp
/**
* Sets up a virtual browser and web environment for seamless HTTP and MVC
* related tests.
*
* @return void
*/
protected function setupHttp()
{
$_GET = array();
$_POST = array();
$_COOKIE = array();
$_FILES = array();
$_SERVER = array('REDIRECT_FLOW_CONTEXT' => 'Development', 'REDIRECT_FLOW_REWRITEURLS' => '1', 'REDIRECT_STATUS' => '200', 'FLOW_CONTEXT' => 'Testing', 'FLOW_REWRITEURLS' => '1', 'HTTP_HOST' => 'localhost', 'HTTP_USER_AGENT' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.52.7 (KHTML, like Gecko) Version/5.1.2 Safari/534.52.7', 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'HTTP_ACCEPT_LANGUAGE' => 'en-us', 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate', 'HTTP_CONNECTION' => 'keep-alive', 'PATH' => '/usr/bin:/bin:/usr/sbin:/sbin', 'SERVER_SIGNATURE' => '', 'SERVER_SOFTWARE' => 'Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/1.0.0e DAV/2 PHP/5.3.8', 'SERVER_NAME' => 'localhost', 'SERVER_ADDR' => '127.0.0.1', 'SERVER_PORT' => '80', 'REMOTE_ADDR' => '127.0.0.1', 'DOCUMENT_ROOT' => '/opt/local/apache2/htdocs/', 'SERVER_ADMIN' => 'george@localhost', 'SCRIPT_FILENAME' => '/opt/local/apache2/htdocs/Web/index.php', 'REMOTE_PORT' => '51439', 'REDIRECT_QUERY_STRING' => '', 'REDIRECT_URL' => '', 'GATEWAY_INTERFACE' => 'CGI/1.1', 'SERVER_PROTOCOL' => 'HTTP/1.1', 'REQUEST_METHOD' => 'GET', 'QUERY_STRING' => '', 'REQUEST_URI' => '', 'SCRIPT_NAME' => '/index.php', 'PHP_SELF' => '/index.php', 'REQUEST_TIME' => 1326472534);
$this->browser = new \TYPO3\Flow\Http\Client\Browser();
$this->browser->setRequestEngine(new \TYPO3\Flow\Http\Client\InternalRequestEngine());
$this->router = $this->browser->getRequestEngine()->getRouter();
$requestHandler = self::$bootstrap->getActiveRequestHandler();
$requestHandler->setHttpRequest(\TYPO3\Flow\Http\Request::create(new \TYPO3\Flow\Http\Uri('http://localhost/typo3/flow/test')));
$requestHandler->setHttpResponse(new \TYPO3\Flow\Http\Response());
}
示例14: writeLogEntry
/**
* Stores log entries for given actions.
*
* @param string $component of the whole application
* @param string $action the performed action to be logged
*/
protected function writeLogEntry($component, $action)
{
$entry = new \Roketi\Panel\Domain\Model\LogEntry();
$entry->setTimeStamp(new \DateTime());
$entry->setAction($action);
$entry->setComponent($component);
if ($this->doLogTheCurrentUser === TRUE) {
$account = $this->context->getAccount();
$entry->setAccount($account);
} else {
$entry->unsetAccount();
}
// fiddle out the IP of the client
$requestHandler = $this->bootstrap->getActiveRequestHandler();
if ($requestHandler instanceof \TYPO3\Flow\Http\HttpRequestHandlerInterface) {
$ip = $requestHandler->getHttpRequest()->getClientIPAddress();
} else {
$ip = '';
}
$entry->setRemoteIp($ip);
$this->logEntryRepository->add($entry);
$this->persistenceManager->persistAll();
}
示例15: canBeResumed
/**
* Returns TRUE if there is a session that can be resumed.
*
* If a to-be-resumed session was inactive for too long, this function will
* trigger the expiration of that session. An expired session cannot be resumed.
*
* NOTE that this method does a bit more than the name implies: Because the
* session info data needs to be loaded, this method stores this data already
* so it doesn't have to be loaded again once the session is being used.
*
* @return boolean
* @api
*/
public function canBeResumed()
{
if ($this->request === null) {
$this->initializeHttpAndCookie($this->bootstrap->getActiveRequestHandler());
}
if ($this->sessionCookie === null || $this->request === null || $this->started === true) {
return false;
}
$sessionMetaData = $this->metaDataCache->get($this->sessionCookie->getValue());
if ($sessionMetaData === false) {
return false;
}
$this->lastActivityTimestamp = $sessionMetaData['lastActivityTimestamp'];
$this->storageIdentifier = $sessionMetaData['storageIdentifier'];
$this->tags = $sessionMetaData['tags'];
return !$this->autoExpire();
}