/** * Creates an event loop which takes orders from the parent process and executes * them in runtime mode. * * @return void */ public function handleRequest() { $sequence = $this->bootstrap->buildRuntimeSequence(); $sequence->invoke($this->bootstrap); $objectManager = $this->bootstrap->getObjectManager(); $systemLogger = $objectManager->get(SystemLoggerInterface::class); $systemLogger->log('Running sub process loop.', LOG_DEBUG); echo "\nREADY\n"; try { while (true) { $commandLine = trim(fgets(STDIN)); $trimmedCommandLine = trim($commandLine); $systemLogger->log(sprintf('Received command "%s".', $trimmedCommandLine), LOG_INFO); if ($commandLine === "QUIT\n") { break; } /** @var Request $request */ $request = $objectManager->get(RequestBuilder::class)->build($trimmedCommandLine); $response = new Response(); if ($this->bootstrap->isCompiletimeCommand($request->getCommand()->getCommandIdentifier())) { echo "This command must be executed during compiletime.\n"; } else { $objectManager->get(Dispatcher::class)->dispatch($request, $response); $response->send(); $this->emitDispatchedCommandLineSlaveRequest(); } echo "\nREADY\n"; } $systemLogger->log('Exiting sub process loop.', LOG_DEBUG); $this->bootstrap->shutdown(Bootstrap::RUNLEVEL_RUNTIME); exit($response->getExitCode()); } catch (\Exception $exception) { $this->handleException($exception); } }
/** * Starts the shutdown sequence * * @param string $runlevel one of the Bootstrap::RUNLEVEL_* constants * @return void */ protected function shutdown($runlevel) { $this->bootstrap->shutdown($runlevel); if ($runlevel === Bootstrap::RUNLEVEL_COMPILETIME) { $this->objectManager->get(\TYPO3\Flow\Core\LockManager::class)->unlockSite(); } exit($this->response->getExitCode()); }
/** * Starts the shutdown sequence * * @param string $runlevel Either "Compiletime" or "Runtime" * @return void */ protected function shutdown($runlevel) { $this->bootstrap->shutdown($runlevel); if ($runlevel === 'Compiletime') { $this->objectManager->get('TYPO3\\Flow\\Core\\LockManager')->unlockSite(); } exit($this->response->getExitCode()); }
/** * Handles a HTTP request * * @return void */ public function handleRequest() { // Create the request very early so the Resource Management has a chance to grab it: $this->request = Request::createFromEnvironment(); $this->response = new Response(); $this->boot(); $this->resolveDependencies(); if (isset($this->settings['http']['baseUri'])) { $this->request->setBaseUri(new Uri($this->settings['http']['baseUri'])); } $componentContext = new ComponentContext($this->request, $this->response); $this->baseComponentChain->handle($componentContext); $this->response->send(); $this->bootstrap->shutdown(Bootstrap::RUNLEVEL_RUNTIME); $this->exit->__invoke(); }
/** * Handles a HTTP request * * @return void */ public function handleRequest() { // Create the request very early so the Resource Management has a chance to grab it: $this->request = Request::createFromEnvironment(); $this->response = new Response(); $this->boot(); $this->resolveDependencies(); $this->request->injectSettings($this->settings); $this->router->setRoutesConfiguration($this->routesConfiguration); $actionRequest = $this->router->route($this->request); $this->securityContext->setRequest($actionRequest); $this->dispatcher->dispatch($actionRequest, $this->response); $this->response->makeStandardsCompliant($this->request); $this->response->send(); $this->bootstrap->shutdown('Runtime'); $this->exit->__invoke(); }
/** * @AfterSuite */ public static function shutdownFlow() { if (self::$bootstrap !== NULL) { self::$bootstrap->shutdown('Runtime'); } }