TYPO3的cronjob——CLI

2010-06-21 09:48

之前做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之类的。