2013-05-17 29 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是(有这样的错误5.3.2,但它消失)

+0

您是否清除缓存?类名被缓存。如果你遵循命名约定,这可能会更容易。 – pgampe

+0

是缓存被清除。我对typo3很陌生,正在开发另一个开发者,所以我没有意识到命名约定(这是?)没有被遵循。 –

+0

您使用哪种TYPO3版本? 你能提供这个扩展名的.t3x文件吗?然后我可以看看它。 – Shufla

回答

1

你的类命名显然是错误的。你的扩展键是“mh_compass”,所以你的类名需要以“tx_mhcompass_”开头。类名的开头始终包含“tx_”,后面跟着没有下划线的扩展键。例如

尝试将您的类重命名为“tx_mhcompass_Task_Reset”。