IT星球论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 598|回复: 0

thinkphp cli模式扩展

[复制链接]

2002

主题

1

好友

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

优秀会员 助人为乐 辛勤工作 技术精英 多才多艺 优秀班竹 灌水天才 星球管理 宣传大使 灌水之王 财富勋章 版主勋章 动漫勋章 勤奋会员 论坛精英 PS高手 心 8 闪游皮肤 双鱼座 8★8➹ 志愿者 乖

发表于 2015-9-11 11:28:50 |显示全部楼层
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模式扩展

该会员没有填写今日想说内容.
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

回顶部