TYPO3的cronjob——CLI
之前做JC的时候,一直是用着php来写cronjob,居然不知道TYPO3也有自己的cronjob类 - -|||
父类就是class.t3lib_cli.php了,就像普通的extension一样,在继承父类的前提下,所有初始化工作都交由TYPO3来做。具体结构如下:
1. 自定义的cli类
一般是在extension下建一个叫cli的目录来存放cli类,文件格式也和extension的pi类很相似。
EXT_PATH/cli/cli_test.php
<?php
if (!defined('TYPO3_cliMode')) die('You cannot run this script directly!');
require_once(PATH_t3lib.'class.t3lib_cli.php');
class cli_test extends t3lib_cli {
function cli_test() {
parent::t3lib_cli();
}
function cli_main($argv) {
// put your code here
}
}
$cleanerObj = t3lib_div::makeInstance('cli_test');
$cleanerObj->cli_main($_SERVER['argv']);
?>
2. ext_localconf.php中的配置
只需要把下面这行代码加在ext_localconf文件中就ok了,非常easy吧。不过使用cli的时候,需要创建一个BE帐号来供cli运行,而且这个BE帐号还不能是admin权限。
$TYPO3_CONF_VARS['SC_OPTIONS']['GLOBAL']['cliKeys']['test'] = array('EXT:EXT_PATH/cli/cli_test.php', '_CLI_test');
其实TYPO3自带的一个叫lowlevel的扩展里,就有用到cli,另外一些涉及到cronjob的也有用,比如direct_mail之类的。