thinkphp中怎么实现后台执行任务
后台的控制器你可以不设置成常规的admin,你可以加几个字什么的比如myadmin
如果这样还被人知道了,那你可以设置利用特殊的get参数来限制
比如
网址:host/Myadmin/Index/Loginhtmltoken=btadmin
代码:
public function Login(){if(isset($_GET['token']) and $_GET['token'] == 'btadmin'){
$this->show();
}else{
$this->redirect('Index');
}
}
◆DedeCms模板安装/制作概述:
DedeCms系统的模板是非固定的,用户可以在新建栏目时可以自行选择栏目模板,官方仅提供最基本的默认模板,即是内置系统模型的各个模板,由于DedeCms支持自定义频道模型,用户自定义新频道模型后,还需要按该模型的字段设计一套新的模板,此外,DedeCms也支持使用风格的形式使用模板,默认风格是 default,它表示系统默认使用 cmspath/templets/default 这个文件夹的模板,如果你下载了一套新的模板,你可以不必要删除 default 原有的文件,把下载的模板文件夹命名你想要的风格名称,如 style2 等,然后在后台修改了默认的模板风格名称为 style2 ,那系统将使用 templets/style2 这文件当作默认模板,但是若你手工指定了栏目模板的位置,则后台参数风格的定义无效。
一、概念,设计和使用模板,必须要理解下面几个概念
1、板块(封面)模板:
指网站主页或比较重要的栏目封面频道使用的模板,一般用“index_识别IDhtm”命名,此外,用户单独定义的单个页面或自定义标记,也可选是否支持板块模板标记,如果支持,系统会用板块模板标记引擎去解析后才输出内容或生成特定的文件。
2、列表模板:
指网站某个栏目的所有文章列表的模板,一般用 “list_识别IDhtm” 命名。
3、档案模板:
表示文档查看页的模板,如文章模板,一般用 “article_识别IDhtm” 命名。
4、其它模板:
一般系统常规包含的模板有:主页模板、搜索模板、RSS、JS编译功能模板等,此外用户也可以自定义一个模板创建为任意文件。
二、 命名,DedeCms模板默认命名规则如下
1、模板保存位置:
模板目录:cmspath/templets/样式名称(英文,默认为default,其中system为系统底层模板,plus为插件使用的模板)/具体功能模板文件}
2、 模板文件命名规范:
(1)index_识别IDhtm: 表示板块(栏目封面)模板;
(2)list_识别IDhtm: 表示栏目列表模板;
(3)article_识别IDhtm: 表示内容查看页(文档模板,包括专题查看页);
(4)searchhtm: 搜索结果列表模板;
(5)indexhtm: 主页模板;
注解:[识别ID]可以在“频道模型管理”的地方获得,当然,你也可以在“频道模型管理”的地方确定某个频道的模板命名。
例:list_imagehtm 表示是就是内容类型为集的栏目默认列表模板。
article_articlehtm 表示的是文章查看页模板。
三、其它模板说明
1、默认底层模板
位置: cmspath/templets/system
功能:在没有指定标记的默认底层模板的时候,系统将自动调用这个文件夹的相应文件作为底层模板。
2、插件目录模板
位置: cmspath/templets/plus
功能:评论、友情链接、RSS地图等模板。
3、会员后台模板
位置: cmspath/member/templets
功能:会员后台的模板。
四、二次开发
DedeCms主要的模板解析类是 include/inc_arcpart_viewphp、include/inc_arclist_viewphp、include/inc_archives_viewphp,这些类是与pub_dedetagphp一起工作的,如果你想为文档模板、列表模板、板块模板增加一些功能,可以直接修改这几个类的ParseTemplet()或ParseTempletsFirst()这类的方法,把标记名称,属性对应试相应该的功能函数即时。
希望能帮到你
ThinkPHP实现定时执行任务的两种方法
1、方法一:v321
①、ThinkPHP/Library/Behavior/CronRunBehaviorclassphp文件
在这里首先要说的就是这个自动执行任务文件,官方所给的这个文件存在BUG,我是用的是v321版本,后面的版本是否有改正大家可以尝试一下。
[php] view plain
<php
/
=======================================
Created by WeiBang Technology
Author: ZhiHua_W
Date: 2016/9/22 0005
Time: 上午 11:12
Project: ThinkPHP实现定时执行任务
Power: 自动执行任务
=======================================
/
namespace Behavior;
class CronRunBehavior
{
public function run(&$params)
{
if (C('CRON_CONFIG_ON')) {
$this->checkTime();
}
}
private function checkTime()
{
if (F('CRON_CONFIG')) {
$crons = F('CRON_CONFIG');
} else if (C('CRON_CONFIG')) {
$crons = C('CRON_CONFIG');
}
if (!empty($crons) && is_array($crons)) {
$update = false;
$log = array();
foreach ($crons as $key => $cron) {
if (empty($cron[2]) || $_SERVER['REQUEST_TIME'] > $cron[2]) {
G('cronStart');
R($cron[0]);
G('cronEnd');
$_useTime = G('cronStart', 'cronEnd', 6);
$cron[2] = $_SERVER['REQUEST_TIME'] + $cron[1];
$crons[$key] = $cron;
$log[] = 'Cron:' $key ' Runat ' date('Y-m-d H:i:s') ' Use ' $_useTime ' s ' "\r\n";
$update = true;
}
}
if ($update) {
\Think\Log::write(implode('', $log));
F('CRON_CONFIG', $crons);
}
}
}
}
此段代码已经将bug修复,大家可以将其复制到 “ ThinkPHP/Library/Behavior/CronRunBehaviorclassphp ” 文件中进行保存。
②、tgsphp
在Application/Common/Conf文件夹中新建tagsphp文件,进行标签设置。
[php] view plain
<php
return array(
//'配置项'=>'配置值'
'app_begin' =>array('Behavior\CronRunBehavior'),
);
③、configphp
在Application/Common/Conf文件夹中的configphp文件进行自动运行配置。
[php] view plain
<php
return array(
/ 自动运行配置 /
'CRON_CONFIG_ON' => true, // 是否开启自动运行
'CRON_CONFIG' => array(
'测试执行定时任务' => array('Home/Index/crons', '5', ''), //路径(格式同R)、间隔秒(0为一直运行)、指定一个开始时间
),
);
④、IndexControllerclassphp
在Application/Home/Controller/IndexControllerclassphp文件中进行定时执行任务的编写。
[php] view plain
<php
/
=======================================
Created by WeiBang Technology
Author: ZhiHua_W
Date: 2016/9/22 0005
Time: 上午 11:20
Project: ThinkPHP实现定时执行任务
Power: 自动执行任务方法控制器
=======================================
/
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller
{
/
public function index(){
$this->show('<style type="text/css">{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: "微软雅黑"; color: #333;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 18em; font-size: 36px }</style><div style="padding: 24px 48px;"> <h1>:)</h1><p>欢迎使用 <b>ThinkPHP</b>!</p></div><script type="text/javascript" src="http://tajsqqcom/statssId=9347272" charset="UTF-8"></script>','utf-8');
}
/
public function index()
{
$contents = file_get_contents("testtxt");
//每次访问此路径将内容输出,查看内容的差别
var_dump($contents);
exit;
$this->assign("contents", $contents);
$this->display();
}
//定时执行的方法
public function crons()
{
//在文件中写入内容
file_put_contents("testtxt", date("Y-m-d H:i:s") "执行定时任务!" "\r\n<br>", FILE_APPEND);
}
}
这样定时执行任务我们就写好了,每隔5秒我们访问任何项目的url,然后查看根目录下的testtxt文件就会发现里面的内容变化。
注意:当你修改间隔时间时会发现没有生效,这是你需要将Runtime/Data文件夹下的缓存文件删除,间隔时间缓存存放在CRON_CONFIGphp文件中。
纯净的项目文件下载地址:http://downloadcsdnnet/detail/zhihua_w/9637267 欢迎大家下载指正。
2、方法2:v322
此方法和方法一没有多大的区别。
①、tagsphp
在/Application/Common/Conf目录下新建tagsphp文件。(此和方法一处一样)
[php] view plain
<php
return array(
//'配置项'=>'配置值'
'app_begin' =>array('Behavior\CronRunBehavior'),
);
②、cronsphp
在/Application/Common/Conf目录下新建cronsphp文件。(此处和方法一有区别,注意区分。)
[php] view plain
<php
return array(
//myplan为我们计划定时执行的方法文件,2是间隔时间,nextruntime下次执行时间
//此文件位于/Application/Cron/目录下
'cron' => array('myplan', 2, nextruntime),
);
③、myplanphp
在/Application/Common/目录下新建 Cron文件夹,里面新建文件myplanphp文件。
[php] view plain
<php
echo date("Y-m-d H:i:s")"执行定时任务!" "\r\n<br>";
此时我们就可以访问项目的url,然后我们会发现在Application/Runtime/目录下生成了~cronsphp文件,文件内容如下:
[php] view plain
<php
return array (
'cron' =>
array (
0 => 'myplan',
1 => 60,
2 => 1398160322,
),
);
>
这样就可以观察结果了!
<php
header("content-type:text/html;charset=utf-8");
define('BIND_MODULE', 'Admin');
define('APP_DEBUG', true); //开启调试模式
include "/App/ThinkPHPphp";//引入ThinkPHP核心文件
新建adminphp文件,放入根目录
这是tp3 tp5同理只需要绑定就行了
以前用PHP做过一个很蹩脚的网站,为什么这么说呢,因为写的全是死代码。做完以后觉得实在是累,前端要div+css,js 后端要php,MySQL,这么多东西要弄,十分头疼。所以,在接到做网站的任务后,我第一时间想到一定要使用开发框架去做,绝不能跟以前一样那么累了。
我选择的是PHP的ThinkPHP框架。说实话,真的蛮不错的。瞬间觉得Web开发还是蛮有效率的。
超级链接:ThinkPHP中文网
按照套路,首先贴一下实验环境:
1 WAMP(集成的那种,最Easy的几乎不需要配置)
2 ZendStudio72(中文网址http://wwwzendstudionet/,里面提供下载,在线注册机以及使用教程)
3 ThinkPHP框架+百度UEditor编辑器插件
4 Win7-64bit操作系统
5 浏览器(火狐,IE,Chrome),外加火狐FireBug插件用于调试以及偷样式
phpcme dedecms他们都有后台和前台会员系统什么的。你只要修改下前台模板,后台建立些栏目什么的就是一个网站了。thinkphp没有后台没有前台,啥都没,只有访问数据库的功能,解析模板的功能,还给你规定了程序该写到些什么文件夹里面。
0条评论