thinkphp学习02-目录结构、控制器、路由、配置文件

目录结构

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                 命令行入口文件

控制器

打开localhost:8506默认有一个响应这个响应来自app/controller/index.php下的index方法
thinkphp学习02-目录结构、控制器、路由、配置文件_第1张图片
thinkphp学习02-目录结构、控制器、路由、配置文件_第2张图片
修改返回的内容为:Hello World

public function index()
{
    return 'Hello World';
}

thinkphp学习02-目录结构、控制器、路由、配置文件_第3张图片
看到上面的结果证明确实是走的那个接口,我们访问http://localhost:8506/indexhttp://localhost:8506/index/index以及http://localhost:8506/index.php/index/index都可以正常显示Hello World。
我们新建一个index2方法

public function index2()
{
    return '我是index2方法';
}

访问http://localhost:8506/index/index2
thinkphp学习02-目录结构、控制器、路由、配置文件_第4张图片
后面我们可以根据这种方式进行自定义接口或者视图了

路由

我们看到还有一个hello方法,直接访问index/hello试试
thinkphp学习02-目录结构、控制器、路由、配置文件_第5张图片
报错了为啥呢,因为使用了路由,我们先关闭路由
thinkphp学习02-目录结构、控制器、路由、配置文件_第6张图片
再次访问就可以了
thinkphp学习02-目录结构、控制器、路由、配置文件_第7张图片
我们再次开启路由,找到route/app.php,看到如下代码
thinkphp学习02-目录结构、控制器、路由、配置文件_第8张图片
我们按照路由格式访问hello/xxx,xxx指向name参数,比如guojing
thinkphp学习02-目录结构、控制器、路由、配置文件_第9张图片
还有一个think我们也可以直接访问
thinkphp学习02-目录结构、控制器、路由、配置文件_第10张图片

配置文件

修改.example.env为.env
thinkphp学习02-目录结构、控制器、路由、配置文件_第11张图片
重新访问,可以看到红框中的标记,点开,就是日志跟踪,开发的时候用来排查错误的
thinkphp学习02-目录结构、控制器、路由、配置文件_第12张图片
thinkphp学习02-目录结构、控制器、路由、配置文件_第13张图片
APP_DEBUG = false他就消失了,这种方式适合线上生产环境
thinkphp学习02-目录结构、控制器、路由、配置文件_第14张图片
开发模式下建议改成true

如何读取.env里面的配置呢?
比如我们想读取database下的hostname参数
thinkphp学习02-目录结构、控制器、路由、配置文件_第15张图片
修改index.php

use think\facade\Env;

public function getConfig()
{
    return Env::get("database.hostname");
}

thinkphp学习02-目录结构、控制器、路由、配置文件_第16张图片
如果我们想获取config下database.php下的connections下的mysql下的hostname
thinkphp学习02-目录结构、控制器、路由、配置文件_第17张图片

use think\facade\Config;
public function getConfig()
{
    return Config::get("database.connections.mysql.hostname");
}

thinkphp学习02-目录结构、控制器、路由、配置文件_第18张图片
也可以判断文件是否存在

use think\facade\Config;
use think\facade\Env;

public function getConfig()
{
    echo Env::has('database.hostname') ? '存在' : "不存在";
    echo "
"
; echo Config::has('database.connections.mysql.hostname') ? '存在' : "不存在"; }

thinkphp学习02-目录结构、控制器、路由、配置文件_第19张图片

多环境配置

V6.0.8+版本开始,可以支持定义多个环境变量配置文件,配置文件命名规范为

.env.example
.env.testing
.env.develop

public/index.php

$http = (new App())->setEnvName('develop')->http;

你可能感兴趣的:(php,学习,android)