假设Yii项目路径为 /home/apps/
1. 创建文件 /home/apps/protected/commands/crons.php
<?php</P><P>$yii = '/home/apps/framework/yii.php';</P><P>require_once($yii); </P><P>$configFile = dirname(__FILE__).'/../config/console.php';</P><P>Yii::createConsoleApplication($configFile)->run();<BR>
2. 创建需要的配置文件 /home/apps/protected/config/console.php,配置需要的组件、数据库连接,日志等信息,格式类似主配置文件main.php
<?php <BR>return array( <BR> 'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..', </P><P> 'name'=>'Emergency',</P><P> 'import'=>array( <BR> 'application.models.*',<BR> 'application.components.*', <BR> 'application.extensions.*',<BR> ), </P><P> 'components'=>array(<BR> 'log'=>array(<BR> 'class'=>'CLogRouter',<BR> 'routes'=>array(<BR> array(<BR> 'class'=>'CFileLogRoute',<BR> 'levels'=>'info, warning, error',<BR> ),<BR> ),<BR> <strong style="color:transparent">¥本文来源gaodai#ma#com搞@@代~&码网^</strong><small>搞gaodaima代码</small> ), <BR> 'db'=>array(<BR> 'class'=>'application.extensions.PHPPDO.CPdoDbConnection',<BR> 'pdoClass' => 'PHPPDO',<BR> 'connectionString' => 'mysql:host=xxxx;dbname=xxx',<BR> 'emulatePrepare' => true,<BR> 'username' => 'xxx',<BR> 'password' => 'xxx',<BR> 'charset' => 'utf8',<BR> 'tablePrefix' => 'tbl_',<BR> ),<BR> ), <br><br> 'params' => require('params.php'),<BR>);<BR>
3. 在 /home/apps/protected/commands/ 下新建 TestCommand 类,继承 CConsoleCommand,在TestCommand中,可以使用项目的配置信息和Yii的各种方法
<?php <BR>class TestCommand extends CConsoleCommand <BR>{ <BR> public function run()<BR> { <BR> ...<BR> } <BR>}<BR>
4. 创建定时任务
$ crontab -e<BR>
插入
1 * * * * /home/php/bin/php -f /home/apps/protected/commands/crons.php Test &<BR>
即为每小时的第一分钟执行TestCommand类中的内容,类似的可以在/home/apps/protected/commands/下新建其他类,使用命令行执行。