将 TYPO3 Extbase 任务迁移到 Symfony 命令

Migrate TYPO3 Extbase task to Symfony command

我正在尝试将扩展 pb_social 迁移到 TYPO3 10 LTS,但我被困在从社交源更新 TYPO3 数据的调度程序任务的迁移中。

我学会了如何使用 Services.yaml 文件注册 Symfony 控制台命令,以便我可以执行命令。

问题是 pb_social 扩展依赖于 Extbase 与其实际的 updateFeedDataCommand 命令相同。

所以我尝试创建一个 Symfony 风格的新命令,并在其方法中 execute() 我实例化了:

$objectManager = GeneralUtility::makeInstance(ObjectManager::class);
/** @var PBSocialCommandController $controller */
$controller = $objectManager->get(PBSocialCommandController::class);

我已经更新了 pb_social 方法的属性以使用新的 @TYPO3\CMS\Extbase\Annotation\Inject 但注入似乎仍然不起作用。

例如与:

/**
* @var \TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface
* @TYPO3\CMS\Extbase\Annotation\Inject
*/
protected $configurationManager;

$this->configurationManager 使用时为空。

可能是什么问题?

使用Method Injection

解决
/**
 * @param ConfigurationManager $configurationManager
 */
public function injectConfigurationManager(ConfigurationManager $configurationManager)
{
    $this->configurationManager = $configurationManager;
}