Typo3 V10 > V11 » History » Revision 2
Revision 1 (Enis Nuredini, 05.04.2023 10:11) → Revision 2/22 (Enis Nuredini, 09.04.2023 22:36)
h1. Migration Typo3 v10 > v11
Some changes in php are needed to get QFQ work in v11.
h3. Extensions Upgrades
|_.A|_.B|
| LDAP| V3.7.1|
h3. File ext_localconf.php
The configurePlugin block needs to be changed to following:
<pre>
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'IMATHUZH.qfq',
'Qfq',
[\IMATHUZH\Qfq\Controller\QfqController::class => 'show'],
[\IMATHUZH\Qfq\Controller\QfqController::class => 'show'], // put here as well, if controller output must not be cached
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::PLUGIN_TYPE_CONTENT_ELEMENT
);
</pre>
h3. QFQ Class QfqController.php
Two new needed Classes needs to be linked:
<pre>
use Psr\Http\Message\ResponseInterface;
use TYPO3\CMS\Core\Http\HtmlResponse;
</pre>
Changes for the showAction() function:
<pre>
public function showAction(): ResponseInterface {
$html = '';
$origErrorReporting = '';
$flagOk = false;
try {
$contentObject = $this->configurationManager->getContentObject();
// By T3 default 'E_NOTICE' is unset. E.g. 'Undefined Index' will throw an exception.
// QFQ like to see those 'E_NOTICE'
$origErrorReporting = error_reporting();
error_reporting($origErrorReporting | E_NOTICE);
$qfq = new QuickFormQuery($contentObject->data);
$html = $qfq->process();
$flagOk = true;
} catch (\UserFormException $e) {
$html = $e->formatMessage();
} catch (\UserReportException $e) {
$html = $e->formatMessage();
} catch (\CodeException $e) {
$html = $e->formatMessage();
} catch (\DbException $e) {
$html = $e->formatMessage();
} catch (\ShellException $e) {
$html = $e->formatMessage();
} catch (\DownloadException $e) {
$html = $e->formatMessage();
} catch (\Exception $e) {
$ee = new \UserReportException(json_encode([
ERROR_MESSAGE_TO_USER => "Generic Exception: " . $e->getMessage(),
ERROR_MESSAGE_TO_DEVELOPER => $e->getTraceAsString()]), E_ERROR);
$html = $ee->formatMessage();
} catch (\Throwable $e) {
$ee = new \UserReportException(json_encode([
ERROR_MESSAGE_TO_USER => "Generic Error: " . $e->getMessage(),
ERROR_MESSAGE_TO_DEVELOPER => $e->getTraceAsString()]), E_ERROR);
$html = $ee->formatMessage();
}
if (isset($e) && $e->getCode() == ERROR_QUIT_QFQ_REGULAR) {
$flagOk = true;
}
if (!$flagOk) {
$html = "<div class='alert alert-warning'>$html</div>";
}
// Restore has to be outside of try/catch - E_NOTICE needs to unset for further T3 handling after an QFQ Exception.
error_reporting($origErrorReporting);
$this->view->assign('qfqOutput', $html);
$content = $this->view->render();
return new HtmlResponse($content);
}
</pre>
We see that the new Typo3 versions are waiting for returned HtmlResponse Objects.