簡體   English   中英

在作曲家的遷移類中確定TYPO3版本

[英]determine the TYPO3 version in migrations classes for the composer

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,

但是,在某些基於作曲家的環境中,這會引起例外。

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

常量TYPO3_version如何也可以用於作曲家自動加載器?

在任何情況下,都必須將此文件視為簡單的哈希映射。 無需將其他PHP代碼添加到該文件。

如果您認為在此文件中需要PHP代碼,則該類別名映射概念無法解決。

我會建議實現一個“通用適配器”類,該類適用於所有TYPO3版本,並從那里檢測當前的TYPO3版本。 並加載當前TYPO3版本的具體實現。

並且不要將類別名映射用於此類魔術。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM