If you need help solving this exception, you can have a look at the TYPO3 Wiki. There you can find solutions provided by the TYPO3 community. Once you have found a solution to the problem, help others by contributing to the wiki page.
E_DEPRECATED => 'PHP Runtime Deprecation Notice' ]; $message = $errorLevels[$errorLevel] . ': ' . $errorMessage . ' in ' . $errorFile . ' line ' . $errorLine; if ($errorLevel & $this->exceptionalErrors) { throw new Exception($message, 1476107295); } switch ($errorLevel) { case E_USER_ERROR: case E_RECOVERABLE_ERROR:
* Prevents access to $this/self from included files. */ function includeFile($file) { include $file; }
* Prevents access to $this/self from included files. */ function includeFile($file) { include $file; }
*/ public function loadClass($class) { if ($file = $this->findFile($class)) { includeFile($file); return true; } }
* @return bool|null */ public function loadClass($className) { $classFound = $this->composerClassLoader->loadClass($className); if (!$classFound && !$this->caseSensitiveClassLoading) { $classFound = $this->composerClassLoader->loadClass(strtolower($className)); } return $classFound;
*/ public function loadClassWithAlias($className) { $originalClassName = $this->getOriginalClassName($className); return $originalClassName ? $this->loadOriginalClassAndSetAliases($originalClassName) : $this->loadClass($className); } /** * Load class with the option to respect case insensitivity
* @return void */ protected function spoolQueuedContentTypeRegistrations(array $queue) { $contentTypeBuilder = new ContentTypeBuilder(); foreach ($queue as $queuedRegistration) { /** @var ProviderInterface $provider */ list ($providerExtensionName, $templateFilename, $providerClassName, $contentType) = $queuedRegistration; try {
); } } $this->spoolQueuedContentTypeRegistrations(Core::getQueuedContentTypeRegistrations()); Core::clearQueuedContentTypeRegistrations(); } /**
*/ public function includeStaticTypoScriptHook(array $parameters, TemplateService $caller) { if (!ObjectAccess::getProperty($caller, 'extensionStaticsProcessed', true)) { $this->processData(); } } /**
// Create object $classObj = self::makeInstance($parts[0]); if (method_exists($classObj, $parts[1])) { // Call method: $content = call_user_func_array([&$classObj, $parts[1]], [&$params, &$ref]); } else { $errorMsg = 'No method name \'' . $parts[1] . '\' in class ' . $parts[0]; throw new \InvalidArgumentException($errorMsg, 1294585865); }
'pid' => &$pid, 'row' => &$row ]; foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tstemplate.php']['includeStaticTypoScriptSources'] ?? [] as $_funcRef) { GeneralUtility::callUserFunction($_funcRef, $_params, $this); } // If "Include before all static templates if root-flag is set" is set: $staticFileMode = $row['static_file_mode'] ?? null; if ($staticFileMode == 3 && strpos($templateID, 'sys_') === 0 && $row['root']) {
} // Include files (from extensions) (#1/2) // NORMAL inclusion, The EXACT same code is found below the basedOn inclusion!!! if (!isset($row['includeStaticAfterBasedOn']) || !$row['includeStaticAfterBasedOn']) { $this->includeStaticTypoScriptSources($idList, $templateID, $pid, $row); } // Include "Based On" sys_templates: // 'basedOn' is a list of templates to include if (trim($row['basedOn'] ?? '')) {
->execute(); if ($row = $queryResult->fetch()) { $this->versionOL($row); if (is_array($row)) { $this->processTemplate($row, 'sys_' . $row['uid'], $this->absoluteRootLine[$a]['uid'], 'sys_' . $row['uid']); $this->outermostRootlineIndexWithTemplate = $a; } } $this->rootLine[] = $this->absoluteRootLine[$a];
// could be used (this is the case if $TSFE->all is set, and the // rowSum still matches). Based on this we decide if cache_pagesection // needs to be updated... $isCached = false; $this->runThroughTemplates($theRootLine); if ($this->getTypoScriptFrontendController()->all) { $cc = $this->getTypoScriptFrontendController()->all; // The two rowSums must NOT be different from each other - which they will be if start/endtime or hidden has changed! if (serialize($this->rowSum) !== serialize($cc['rowSum'])) {
$timeTracker->push('Parse template'); // Force parsing, if set?: $this->tmpl->forceTemplateParsing = $this->forceTemplateParsing; // Start parsing the TS template. Might return cached version. $this->tmpl->start($this->rootLine); $timeTracker->pull(); // At this point we have a valid pagesection_cache (generated in $this->tmpl->start()), // so let all other processes proceed now. (They are blocked at the pagessection_lock in getFromCache()) $this->releaseLock('pagesection');
$this->controller->getFromCache(); $this->timeTracker->pull(); // Get config if not already gotten // After this, we should have a valid config-array ready $this->controller->getConfigArray(); // Merge Query Parameters with config.defaultGetVars // This is done in getConfigArray as well, but does not override the current middleware request object // Since we want to stay in sync with this, the option needs to be set as well.
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
['code' => PageAccessFailureReasons::CACHEHASH_COMPARISON_FAILED] ); } } return $handler->handle($request); } /** * Calculates a hash string based on additional parameters in the url.
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
) { return GeneralUtility::makeInstance(ErrorController::class)->unavailableAction($request, 'This page is temporarily unavailable.'); } // Continue the regular stack if no maintenance mode is active return $handler->handle($request); } }
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
} $this->controller->determineId(); } return $handler->handle($request); } /** * Provides ways to bypass the '?id=[xxx]&type=[xx]' format, using either PATH_INFO or Server Rewrites
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
return new HtmlResponse($content, 200, ['Content-Type' => $contentType]); } } return $handler->handle($request); } /** * Find the proper configuration for the static route in the static route configuration. Mainly:
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
$uri = $requestedUri->withPath(rtrim($requestedUri->getPath(), '/')); return new RedirectResponse($uri, 307); } } return $handler->handle($request); } /** * Checks if the language is allowed in Frontend, if not, check if there is valid BE user *
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
$simulatingGroup = $this->simulateUserGroup($request); $GLOBALS['TSFE']->fePreview = ((int)($simulatingDate || $simulatingGroup)); } return $handler->handle($request); } /** * Simulate dates for preview functionality
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
// At this point, we later get further route modifiers // for bw-compat we update $GLOBALS[TYPO3_REQUEST] to be used later in TSFE. $GLOBALS['TYPO3_REQUEST'] = $request; return $handler->handle($request); } }
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
Bootstrap::loadExtTables(); $this->setBackendUserAspect(GeneralUtility::makeInstance(Context::class), $GLOBALS['BE_USER']); } return $handler->handle($request); } /** * Creates the backend user object and returns it.
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
// Register the frontend user as aspect $this->setFrontendUserAspect(GeneralUtility::makeInstance(Context::class), $frontendUser); return $handler->handle($request); } /** * It's possible to transfer a frontend user session via a GET/POST parameter 'FE_SESSION_KEY'.
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
GeneralUtility::callUserFunction($_funcRef, $_params, $GLOBALS['TSFE']); } } return $handler->handle($request); } }
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
{ $eID = $request->getParsedBody()['eID'] ?? $request->getQueryParams()['eID'] ?? null; if ($eID === null) { return $handler->handle($request); } // Remove any output produced until now ob_clean();
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
$hookParameters = []; GeneralUtility::callUserFunction($hookFunction, $hookParameters, $hookParameters); } } return $handler->handle($request); } }
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
// refactored to have ServerRequest object available where it is needed. This global will be // deprecated then and removed. $GLOBALS['TYPO3_REQUEST'] = $request; return $handler->handle($request); } }
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
); $timeTracker->start(); $timeTracker->push(''); return $handler->handle($request); } }
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
* @return ResponseInterface */ public function handle(ServerRequestInterface $request): ResponseInterface { return $this->tip->handle($request); } /** * Seed the middleware stack with the inner request handler
{ $requestHandler = GeneralUtility::makeInstance($this->requestHandler); $dispatcher = $this->createMiddlewareDispatcher($requestHandler); return $dispatcher->handle($request); } /** * Set up the application and shut it down afterwards
if (!$this->checkIfEssentialConfigurationExists()) { return $this->installToolRedirect(); } $this->initializeContext(); return parent::handle($request); } /** * Check if LocalConfiguration.php and PackageStates.php exist
final public function run(callable $execute = null) { try { $response = $this->handle( \TYPO3\CMS\Core\Http\ServerRequestFactory::fromGlobals() ); if ($execute !== null) { call_user_func($execute); }
// Set up the application for the frontend call_user_func(function () { $classLoader = require dirname(__DIR__).'/vendor/autoload.php'; \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::run(0, \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::REQUESTTYPE_FE); \TYPO3\CMS\Core\Core\Bootstrap::init($classLoader)->get(\TYPO3\CMS\Frontend\Http\Application::class)->run(); });
call_user_func(function () { $classLoader = require dirname(__DIR__).'/vendor/autoload.php'; \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::run(0, \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::REQUESTTYPE_FE); \TYPO3\CMS\Core\Core\Bootstrap::init($classLoader)->get(\TYPO3\CMS\Frontend\Http\Application::class)->run(); });