牛骨文教育服务平台(让学习变的简单)
博文笔记

tp5控制器的基本使用/tp5前置操作/tp5控制器初始化/tp5空操作/tp5跳转和重定向

创建时间:2017-11-16 投稿人: 浏览次数:701

tp5控制器

<?php

namespace appindexcontroller;

use thinkController;

/**
 * Class User
 * @package appindexcontroller
 * @author weiyongqiang <hayixia606@163.com>
 * 其实tp5中可以不集成Controller但是我们使用了Controller中的方法所以要集成
 */
class User extends Controller
{
    /**
     * @var array
     * 我来定义前置操作,所谓前置操作就是在我配置的操作执行之前执行我
     */
    protected $beforeActionList = [
        "checksession", //在任何操作执行前执行checksession方法
        "islogin" =>  ["except"=>"login"],   //在除login之外的其他方法执行前先执行islogin方法
        "removesession"  =>  ["only"=>"logout"],   //在logout执行前先执行removesession
    ];

    /**
     * @param $name
     * 如果在本控制器中找不到该操作那就运行我
     */
    public function _empty($name)
    {
        echo $name."这个操作不存在";
    }

    /**
     * 我是控制器初始化方法,执行此控制器的任何操作之前必须先执行我
     */
    public function _initialize()
    {
        Logs::write(time()."访问".$_SERVER["PHP_SELF"]);
    }

    /**
     * @return bool
     * 我是前置操作
     */
    public function checksession()
    {
        return empty(session("USERINFO"));
    }

    /**
     * @return bool
     * 我是前置操作
     */
    public function islogin()
    {
        $userInfo = session("USERINFO");
       return $userInfo.expires > time();
    }


    /**
     * @return bool
     * 我是前置操作
     */
    public function removesession()
    {
        return session("USERINFO", null);
    }

    /**
     * 用户登录操作
     */
    public function login()
    {
        if(用户已经登录了){
            $this->redirect("Home/index", 302);
          //或者使用助手函数
          //redirect("Home/index");
       }

        if(用户信息没有问题){
            $this->success("登录成功", "Home/index");
       }else{
            $this->success("出错了请稍后再试");

       }
    }

    /**
     * 用户退出操作
     */
    public function logout()
    {
        redirect("Home/index");
    }
}
以上样例中涉及到的知识有:
1. 控制器的定义
2. 控制器的初始化方法:_initialize()
3. 前置操作: 配置protected $beforActionList
4. 跳转和重定向:success和error重定向为redirect
5. 空操作:_empty()当你访问的方法不存在时就执行

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。