TYPO3旧扩展名使用“退出”更新:好还是不好?

时间:2018-11-16 12:46:08

标签: debugging typo3 typo3-8.x

几年前,我开发了一个扩展作为后端模块。它可以在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中什么也看不见。因此,我在函数printContent()中添加了退出命令。问题解决了!内容出现在iframe中!

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

我的问题:这种解决方法(使用退出)是否有效?还有其他更好或推荐的方法吗?

1 个答案:

答案 0 :(得分:1)

这听起来还可以,但是如果您需要的话,我会考虑整体重构代码,并切换到流畅的模板等等。但是,如果不需要,则无需切换到extbase。