2013-05-17 2 views
0

typo3에서 실행되는 스케줄러 클래스를 얻으려고합니다.Typo3 스케줄러 클래스가 없습니다.

ext_autoload.php :

$extensionPath = t3lib_extMgm::extPath('mh_compass'); 
$loaderClass = array(
    'tx_monitorcompassdailyreset_sched' => $extensionPath.'scheduler/class.tx_monitorcompassdailyreset_sched.php', 
); 
return $loaderClass; 

ext_localconf.php :

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['tx_monitorcompassdailyreset_sched'] = array(
     'extension'  => $_EXTKEY, 
     'title'   => 'Compass Monitor Daily Reset Scheduler', 
     'description'  => 'Reset daily Monitor Jobs', 
); 

class.tx_monitorcompassdailyreset_sched.php :

class tx_monitorcompassdailyreset_sched extends tx_scheduler_Task { 

    public function execute() { 
     error_log("Start Compass Monitor Daily Reset Scheduled Job"); 
     //do some stuff 
     error_log("Finished Compass Monitor Scheduled Job"); 
    } 
} 

내가에서 스케줄러에 작업을 추가하려고 백엔드에서 다음 오류가 발생합니다.

Fatal error: Class 'tx_monitorcompassdailyreset_sched' not found in /var/www/typo3_src-4.5.22/t3lib/class.t3lib_div.php on line 5375 

이것은 a) 해당 함수에서 디버그를 사용하고 다른 모든 클래스를로드하고 b) 클래스 이름에 불일치가 있음을 알 수 없습니다.

PHP의 버전은 5.3.10이다

+0

캐시를 지우셨습니까? 클래스 이름은 캐시됩니다. 명명 규칙을 따르는 것이 더 쉽습니다. – pgampe

+0

예 캐시가 지워졌습니다. 나는 Typo3에 익숙해졌고 다른 개발자가 시작한 작업에 착수하여 명명 규칙을 깨닫지 못했다. –

+0

어떤 TYPO3 버전을 사용하고 있습니까? 이 확장 프로그램의 .t3x 파일을 제공 할 수 있습니까? 그럼 나는 그것을 볼 수 있습니다. – Shufla

답변

1

클래스의 이름은 분명히 잘못된 것입니다 (이 같은 버그는 5.3.2로했지만, 그것은 사라졌다). 확장 키는 "mh_compass"이므로 클래스 이름은 "tx_mhcompass_"로 시작해야합니다. 클래스 이름의 시작에는 항상 "tx_"가 포함되어 있으며 밑줄이없는 확장 키가 이어집니다.

예를 들어 클래스의 이름을 "tx_mhcompass_Task_Reset"으로 변경하십시오.

관련 문제