Обновление старого расширения TYPO3 с использованием «выхода»: хорошо или нет? - PullRequest
0 голосов
/ 16 ноября 2018

Несколько лет назад я разработал расширение в качестве внутреннего модуля. Может работать на TYPO3 7 LTS. Недавно я обновил его и хочу, чтобы он работал на TYPO3 8 LTS.

Он не основан на Extbase, основной путь к классу - mod1 / index.php.

В этом index.php есть основной класс tx_xxxxx_module1. В классе tx_xxxxxx_module1 есть несколько функций, которые могут генерировать желаемое содержимое. В конце index.php вызывается функция для печати содержимого (в iframe): $ SOBE-> printContent ();

//index.php
<?php
global $MCONF;
require_once \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('xxxxx').'mod1/conf.php';

class  tx_xxxxx_module1 extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
    ......

    function main()    {
        ......
    }

    ......

    function printContent()    {
        ......
    }
}

......

$SOBE = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('tx_xxxxx_module1');
$SOBE->main();
$SOBE->printContent();

?>

Здесь $ SOBE - это экземпляр (синглтон) класса tx_xxxxxx_module1; в функции printContent () нет ничего, кроме команды echo:

function printContent()    
{
    echo $this->content;
}

Это хорошо работает для TYPO3 7. Но в TYPO3 8 я ничего не видел в iframe. Поэтому я добавил команду exit в функцию printContent (). Задача решена! Контент появился в iframe!

function printContent()    
{
    echo $this->content;
    exit;
}

Мой вопрос: хорош ли этот обходной путь (используя выход ) или нет? Есть ли другие лучшие или рекомендуемые подходы к этому?

1 Ответ

0 голосов
/ 17 ноября 2018

Звучит нормально, но я бы подумал о рефакторинге кода в целом, если вам это нужно, также переключитесь на жидкость для шаблонов и так далее.однако нет необходимости переключаться на extbase, если он вам не нужен.

...