• 微信
您当前的位置: 首页> PHP> ThinkPHP>

TP6基础:控制器应用技巧

作者:Alpha时间:2021-07-14 阅读数:2821 +人阅读

thinkPHP从6.0版本开始,必须通过Composer方式安装和更新,无法通过git下载源码进行安装,这个和之前的版本有很大区别,对composer不熟悉的可以自行百度了解,掌握composer基本的用法还是不难的。


如果你是第一次安装的话,在命令行下面,切换到你的WEB根目录下面并执行下面的命令:

composer create-project topthink/think tp

注意:这里的tp可以根据自己的需要进行修改,例如:www_seoalphas_com,就是你的网站根目录。


如果你之前已经安装过,那么切换到你的应用根目录下面,然后执行下面的命令进行更新:

composer update topthink/framework

安装好后,就可以使用你配置的域名进行访问了。

下面是通过composer安装后获得的文件目录结构(单应用模式)

www  WEB部署目录(或者子目录)
├─app           应用目录 
│  ├─controller      控制器目录 
│  ├─model           模型目录 
│  ├─ ...            更多类库目录 
│  ├─common.php         公共函数文件 
│  └─event.php          事件定义文件 
│
├─config                配置目录 
│  ├─app.php            应用配置 
│  ├─cache.php          缓存配置 
│  ├─console.php        控制台配置 
│  ├─cookie.php         Cookie配置 
│  ├─database.php       数据库配置 
│  ├─filesystem.php     文件磁盘配置 
│  ├─lang.php           多语言配置 
│  ├─log.php            日志配置 
│  ├─middleware.php     中间件配置 
│  ├─route.php          URL和路由配置 
│  ├─session.php        Session配置 
│  ├─trace.php          Trace配置 
│  └─view.php           视图配置 
│ 
├─view            视图目录 
├─route                 路由定义目录 
│  ├─route.php          路由定义文件 
│  └─ ...   
│ 
├─public                WEB目录(对外访问目录) 
│  ├─index.php          入口文件 
│  ├─router.php         快速测试文件 
│  └─.htaccess          用于apache的重写 
│ 
├─extend                扩展类库目录 
├─runtime               应用的运行时目录(可写,可定制) 
├─vendor                Composer类库目录 
├─.example.env          环境变量示例文件 
├─composer.json         composer 定义文件 
├─LICENSE.txt           授权说明文件 
├─README.md             README 文件 
├─think                 命令行入口文件

访问配置的网址,就可以看到thinkPHP熟悉的欢迎界面:

图片.png

新建控制器:

默认的单应用模式,如果需要创建新的控制器,需要在controller目录新创建新的类,注意命名空间的设置(可以直接复制Index.php的配置)

namespace app\controller;
use app\BaseController;
class Demo extends BaseController
{
    public function index(){
        return 'demo/index';
    }
    public function json(){
        $result = [
            'status' => 1,
            'message'=> "ok",
            'data'   => [
                'name' => '张三',
                'age'  => 25
            ]
        ];
        $header = [
                    'Tokey' =>'miyunkeji'
                ];
        return json($result, 201, $header);
    }
}

新建了一个Demo控制器,下面有两个方法index和json,分别返回了两种数据类型字符串和json格式的数据。

访问url:

http://www.xxx.com/demo/index
http://www.xxx.com/demo/json

上面返回json数据使用了json()方法,这里调用的是:\vendor\topthink\framework\src\helper.php下的json方法:

if (!function_exists('json')) {
    /**
     * 获取\think\response\Json对象实例
     * @param mixed $data    返回的数据
     * @param int   $code    状态码
     * @param array $header  头部
     * @param array $options 参数
     * @return \think\response\Json
     */
    function json($data = [], $code = 200, $header = [], $options = []): Json
    {
        return Response::create($data, 'json', $code)->header($header)->options($options);
    }
}

图片.png

方法json方法,查看响应信息,就可以看到我们设置的状态码为201(默认为200),header设置的Token参数


本站所有文章、数据、图片均来自互联网,一切版权均归源网站或源作者所有。

如果侵犯了你的权益请来信告知我们删除。邮箱:595397166@qq.com

标签: 小程序 小程序

阿尔法

软件开发工程师#全栈工程师

{include file=foot.html}
0.846388s