2015-07-09 2 views
0

Я создал пустое расширение extbase/fluid и добавил ImportCommandController для задачи планировщика. По какой-то причине я не могу загрузить эту задачу в своем планировщике. Обратите внимание, что я хочу реализовать свою задачу с помощью CommandController (http://wiki.typo3.org/CommandController_In_Scheduler_Task) и NOT через \ TYPO3 \ CMS \ Scheduler \ Task \ AbstractTask.Typo3 - Extbase CommandController для задачи планировщика

ext_localconf.php

<?php 
if (!defined('TYPO3_MODE')) { 
die('Access denied.'); 
} 

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['extbase']['commandControllers'][] = 'VENDORx\\Sched\\Command\\ImportCommandController'; 

Классы/Command/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'; 

     } 
     } 
?> 

любая идея, Что отсутствует ??

+3

Я не уверен, но, возможно, phpdoc-комментарий метода 'importCommand()' отсутствует. По крайней мере, его содержимое отображается, если вы запустите 'php typo3/cli_dispatch.phpsh extbase help', поэтому он интерпретируется. – Jost

+0

Я взял ваш код, добавил 'ext_emconf.php', установил расширение - и он отлично работает (т. Е. В раскрывающемся списке появляется новая задача). Я не добавлял аннотацию к 'importCommand', как было предложено @Jost и @Daniel. Я использую Windows 7 и, в отличие от вас, - Typo3 7.5.0. – gebi

+0

... на самом деле выполнение вашей задачи требует упомянутой аннотации. Без этого появляется следующее сообщение об ошибке: «Выполнение задачи« Задача ExtCase CommandController Task (extbase) »не удалась со следующим сообщением: Тип аргумента для параметра $ commandIdentifier метода [...] -> importCommand() не может быть обнаружено «. – gebi

ответ

1

Как уже упоминалось Jost вы NEET соответствующие аннотаций:

/** 
* @param integer $commandIdentifier 
*/ 
public function importCommand($commandIdentifier = NULL) { 
    $this->outputLine('command run'); 
} 
+0

Я изменил свой класс CommadController, но я все еще не могу «использовать» его. Я не могу добавить его через планировщик T3. Я сделал снимок экрана планировщика BE. http://i.imgur.com/j6VZ0rK.png – d4ny3l

+0

желтое выделенное выпадающее меню НЕ содержит мою команду импорта. я должен что-то упустить. – d4ny3l

+0

Установлен ли ваш удлинитель? ;) – Daniel

0

Выберите «Extbase-CommandController-Task» в раскрывающемся списке Вы получите другое поле выбора на нижней части, где вы можете найти свой «ImportCommand» выберите и сохранить