将 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 使用时为空。
可能是什么问题?
解决
/**
* @param ConfigurationManager $configurationManager
*/
public function injectConfigurationManager(ConfigurationManager $configurationManager)
{
$this->configurationManager = $configurationManager;
}
我正在尝试将扩展 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 使用时为空。
可能是什么问题?
/**
* @param ConfigurationManager $configurationManager
*/
public function injectConfigurationManager(ConfigurationManager $configurationManager)
{
$this->configurationManager = $configurationManager;
}