thinkphp中怎么实现后台执行任务

thinkphp中怎么实现后台执行任务,第1张

后台的控制器你可以不设置成常规的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没有后台没有前台,啥都没,只有访问数据库的功能,解析模板的功能,还给你规定了程序该写到些什么文件夹里面。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » thinkphp中怎么实现后台执行任务

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情