Как найти двоичный файл TYPO3 (опечатка3)

Начиная с TYPO3 11 LTS typo3 двоичный файл не находится в sysext/core/bin/ больше, по крайней мере, не в режиме композитора, поэтому мне нужно найти новый способ найти bin-dir от композитора в режиме композитора.

Следует ли мне использовать пакет composer / composer для его анализа? мне нужно root композитор, а не для TYPO3 Crawler.

      if (TYPO3_COMPOSER_MODE) {
    // How to find the composer-bin dir?      
} else {
    $typo3BinaryPath = ExtensionManagementUtility::extPath('core') . 'bin/';
}

Есть предложения, как с этим бороться? Можно добавить его как параметр, чтобы он был частью настроек расширения.

1 ответ

Я пошел на это решение. Но был бы рад услышать о других / лучших решениях.

      private function getComposerBinPath(): string
{
    $composerRootPath = Environment::getComposerRootPath();
    $composerJson = json_decode(file_get_contents($composerRootPath . '/composer.json'), true);
    $binDir = $composerJson['config']['bin-dir'] ?? 'vendor/bin';
    return $composerRootPath . '/' . $binDir . '/';
}

Это реализация в TYPO3 Core для расширения Scheduler.

https://github.com/TYPO3/typo3/blob/8a9c80b9d85ef986f5f369f1744fc26a6b607dda/typo3/sysext/scheduler/Classes/Controller/SchedulerModuleController.php#L402

Другие вопросы по тегам