【问题标题】:TYPO3 system extension "install" overwrite with my own classTYPO3 系统扩展“安装”用我自己的类覆盖
【发布时间】:2019-11-20 19:29:01
【问题描述】:

我想用我自己的类 VENDOR\Examples\Xclass\Backend 覆盖 TYPO3 系统扩展 "instal" -> 类 TYPO3\CMS\Install\SystemEnvironment\Check 的方法\检查,但它不起作用。

系统扩展中的其他类,例如 TYPO3\CMS\Backend\Controller\LoginControllerTYPO3\CMS\Backend\Template\DocumentTemplate 我可以毫无问题地使用XLASS 覆盖的帮助。

通常可以从自己的扩展中覆盖安装工具类吗?

<?php

defined('TYPO3_MODE') || die('Access denied.');

if (TYPO3_MODE === 'BE') {

    $GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects']['TYPO3\\CMS\\Install\\SystemEnvironment\\Check'] = array(
        'className' => 'ALEX\\Examples\\Xclass\\Backend\\Check'
    );

    $GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects']['TYPO3\\CMS\\Backend\\Controller\\LoginController'] = array(
        'className' => 'ALEX\\Examples\\Xclass\\Backend\\LoginController'
    );

    $GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects']['TYPO3\\CMS\\Backend\\Template\\DocumentTemplate'] = array(
        'className' => 'ALEX\\Examples\\Xclass\\Backend\\DocumentTemplate'
    );
}

【问题讨论】:

  • 不是 100% 确定它是否有效,但您可以复制安装扩展,更改克隆中的作曲家包名称,并添加替换键。 ``` "replace": { "typo3/cms-install":"self.version" } ``` 这样你至少可以根据需要自定义扩展。
  • 我试过了,但它不起作用:(

标签: typo3 extbase


【解决方案1】:

这是不可能的,因为类不是通过GeneralUtility::makeInstance 调用的。此外,它也在类中声明:

@internal 此类仅用于 EXT:install 和 不是 TYPO3 核心 API 的一部分。

如果您缺少某项功能或认为您遇到了错误,您应该在https://forge.typo3.org/projects/typo3cms-core/issues 提出问题

【讨论】:

    猜你喜欢
    • 2019-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-04
    • 1970-01-01
    • 1970-01-01
    • 2016-10-17
    • 2016-04-20
    相关资源
    最近更新 更多