【发布时间】:2015-07-09 09:06:24
【问题描述】:
我创建了一个空的 extbase/fluid 扩展,并为调度程序任务添加了一个 ImportCommandController。出于某种原因,我无法在我的调度程序中加载该任务。请注意,我想通过 CommandController (http://wiki.typo3.org/CommandController_In_Scheduler_Task) 和 NOT 通过 \TYPO3\CMS\Scheduler\Task\AbstractTask 来实现我的任务。
ext_localconf.php
<?php
if (!defined('TYPO3_MODE')) {
die('Access denied.');
}
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['extbase']['commandControllers'][] = 'VENDORx\\Sched\\Command\\ImportCommandController';
类/命令/ImportCommandController.php
<?php
namespace VENDORx\Sched\Command;
/**
*
*
* @package Sched
* @license http://www.gnu.org/licenses/gpl.html GNU General Public License, version 3 or later
*
*/
class ImportCommandController extends \TYPO3\CMS\Extbase\Mvc\Controller\CommandController {
public function importCommand($commandIdentifier= NULL) {
echo 'command run';
}
}
?>
知道缺少什么吗?
【问题讨论】:
-
我不确定,但可能缺少
importCommand()-method 的 phpdoc-comment。如果你运行php typo3/cli_dispatch.phpsh extbase help,至少会显示它的内容,所以它会被解释。 -
我拿走了你的代码,添加了一个
ext_emconf.php,安装了扩展 - 它工作正常(即新任务出现在下拉列表中)。我没有按照@Jost 和@Daniel 的建议向importCommand添加注释。我使用的是 Windows 7,而且 - 与你不同 - Typo3 7.5.0。 -
... 但是,实际运行您的任务需要提到的注释。没有它,我会收到以下错误消息:“任务“Extbase CommandController Task (extbase)”的执行失败,并显示以下消息:方法 [...]->importCommand() 的参数 $commandIdentifier 的参数类型不能是检测到。'
标签: typo3 extbase typo3-6.2.x