определить версию TYPO3 в классах миграции для композитора - PullRequest
0 голосов
/ 01 мая 2018

Версия TYPO3 должна быть определена в файле ClassAliasMapResult.php расширения, потому что это расширение должно поддерживать более одной версии TYPO3. Для этого у TYPO3 есть константа TYPO3_version . Это сопоставление псевдонимов необходимо для запуска расширений TYPO3 в нескольких версиях TYPO3 с одним и тем же кодом PHP. Файл отображения псевдонимов классов зависит от версии TYPO3, поскольку каждый из них имеет некоторые различия в именах и номерах файлов классов.

У меня есть этот файл /Migrations/Code/ClassAliasMapResult.php в расширении div2007, строка 940:

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 работала и для автозагрузчика композитора?

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Я бы предложил реализовать класс «универсального адаптера», который работает на всех версиях TYPO3 и оттуда определяет текущую версию TYPO3. и загрузите конкретную реализацию для текущей версии TYPO3.

и не используйте карту псевдонимов классов для такой магии.

0 голосов
/ 02 мая 2018

Этот файл во всех случаях должен рассматриваться как простая хеш-карта. Никакой другой код PHP не должен быть добавлен в этот файл.

Если у вас есть случай, когда вы думаете, что вам нужен код PHP в этом файле этот случай не может быть охвачен концепцией карты псевдонимов класса.

...