首页 文章

确定作曲家的迁移类中的TYPO3版本

提问于
浏览
0

TYPO3版本必须在扩展名的ClassAliasMapResult.php文件中确定,因为此扩展必须支持多个版本的TYPO3 . TYPO3具有常量 TYPO3_version . 需要此别名映射才能在具有相同PHP代码的TYPO3的多个版本下运行TYPO3扩展 . 类别名映射文件取决于TYPO3的版本,因为它们中的每个都在类文件的名称和编号上有一些差异 .

我在扩展div2007第940行中有这个文件/Migrations/Code/ClassAliasMapResult.php:

if (version_compare(TYPO3_version, '8.0.0', '>=')) {
 $variantClassArray = array(
    'Tx_Aboutmodules_Controller_ModulesController' => \TYPO3\CMS\About\Controller\ModulesController::class,

但是在基于composer的某些环境中,这会引发异常 .

[ErrorException]
Use of undefined constant TYPO3_version - assumed 'TYPO3_version'

如何使常量TYPO3_version也能为作曲家自动加载器工作?

2 回答

  • 1

    在所有情况下,此文件必须被视为简单的哈希映射 . 不能将任何其他PHP代码添加到此文件中 .

    如果您认为在此文件中需要PHP代码,则不能使用类别名映射概念来涵盖此案例 .

  • 0

    我会sugesst实现一个“unversal适配器”类,它适用于所有TYPO3版本,并从那里检测当前的TYPO3版本 . 并加载当前TYPO3版本的具体实现 .

    并且不要使用类别名映射来实现这种魔法 .

相关问题