thinkphp cli模式扩展
phper 有时需要在服务器定时跑任务的时候,如果是在thinkphp 的框架下,可以使用thinkphp cli模式扩展。 一:执行简单的定时任务 在服务器crontab加入定时任务,/usr/local/php/bin/php /var/www/test/test.php 二:复杂的任务 特别在thinkphp框架的环境下,定时的任务必须得查询数据库,可以使用thinkphp cli模式扩展来运用thinkphp的环境。 1:创建cli项目(copyIT论坛项目的结构) 
2:创建入口文件cli.php 1
2
3
4
5
6
7
8
| <?php
header("content-type:text/html;charset=utf-8");
defined('ROOT_PATH') or define('ROOT_PATH', dirname(__FILE__));
define('MODE_NAME','cli');//必须是cli,采用CLI运行模式运行
define('THINK_PATH', ROOT_PATH.'/lib/');
define('APP_NAME', 'cli');
define('APP_PATH', ROOT_PATH.'/cli/');
require( THINK_PATH."ThinkPHP.php");
|
一旦MODE_NAME名称定义了cli(thinkphp模式扩展中的关键字),访问url test.cn?a=index&m=test 都会失效,因为都指向默认的DEFAULT_MODULE(默认模块名称) 和 DEFAULT_ACTION(默认操作名称),因为此时的cli就是命令运行模式 3:配置文件 URL 模式 ‘URL_MODEL’ => 1, //PATHINFO模式 4:在linux服务器创建执行任务的 shell 脚本或者crontab定时 1
| * * * * * /usr/local/webserver/php/bin/php /opt/a/webroot/oa.feibo.cn/cli.php cron/post_weibo
|
加入上面所写代码即可定时执行任务,其中:
cron: 控制类名称(cronAction)
post_weibo: 方法(fucntion) IT论坛例子:
index.php info/read/category/2/id/4
命令行模式下面,系统会自动把参数转换为GET变量,无论采用哪种命令行参数模式,都可以直接使用GET变量获取参数
info: 控制类
read: 方法
category,id: 所带参数 http://www.hlmblog.com/202.html
thinkphp cli模式扩展
|