首先,tp6官方手册,需要的可以自己查看序言 · ThinkPHP6.0完全开发手册 · 看云
//下载命令 tp6为文件名,可定义
composer create-project topthink/think tp6
//下载多级控制器
composer require topthink/think-multi-app
//app.php
'auto_multi_app' => true,//开启多级控制器(添加代码)
'error_message' => true, // 错误显示信息,非调试模式有效(修改代码)
//database.php,connections里面,填写数据库信息,可填写多个数据库信息,例如
'connections' => [
'user1' => [
// 数据库类型
'type' => env('database.type', 'mysql'),
// 服务器地址
'hostname' => env('database.hostname', '127.0.0.1'),
// 数据库名
'database' => env('database.database', 'php66'),
// 用户名
'username' => env('database.username', 'php66'),
// 密码
'password' => env('database.password', 'php123456'),
// 端口
'hostport' => env('database.hostport', '3306'),
// 数据库连接参数
'params' => [],
// 数据库编码默认采用utf8
'charset' => env('database.charset', 'utf8'),
// 数据库表前缀
'prefix' => env('database.prefix', ''),
// 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
'deploy' => 0,
// 数据库读写是否分离 主从式有效
'rw_separate' => false,
// 读写分离后 主服务器数量
'master_num' => 1,
// 指定从服务器序号
'slave_no' => '',
// 是否严格检查字段是否存在
'fields_strict' => true,
// 是否需要断线重连
'break_reconnect' => false,
// 监听SQL
'trigger_sql' => env('app_debug', true),
// 开启字段缓存
'fields_cache' => false,
],
'user2' => [
// 数据库类型
'type' => env('database.type', 'mysql'),
// 服务器地址
'hostname' => env('database.hostname', '127.0.0.1'),
// 数据库名
'database' => env('database.database', 'url'),
// 用户名
'username' => env('database.username', 'url'),
// 密码
'password' => env('database.password', 'url123'),
// 端口
'hostport' => env('database.hostport', '3306'),
// 数据库连接参数
'params' => [],
// 数据库编码默认采用utf8
'charset' => env('database.charset', 'utf8'),
// 数据库表前缀
'prefix' => env('database.prefix', ''),
// 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
'deploy' => 0,
// 数据库读写是否分离 主从式有效
'rw_separate' => false,
// 读写分离后 主服务器数量
'master_num' => 1,
// 指定从服务器序号
'slave_no' => '',
// 是否严格检查字段是否存在
'fields_strict' => true,
// 是否需要断线重连
'break_reconnect' => false,
// 监听SQL
'trigger_sql' => env('app_debug', true),
// 开启字段缓存
'fields_cache' => false,
]
],
//其作用可看官网,也可以配置数据库,这个配置以后database.php就不起作用了.
//想配置的如下,不想配置的删掉部分就好
APP_DEBUG = true
[APP]
DEFAULT_TIMEZONE = Asia/Shanghai
[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = php66
USERNAME = php66
PASSWORD = php123456
HOSTPORT = 3306
CHARSET = utf8
DEBUG = true
[LANG]
default_lang = zh-cn
//不配置的
APP_DEBUG = true
[APP]
DEFAULT_TIMEZONE = Asia/Shanghai
[DATABASE]
DEBUG = true
[LANG]
default_lang = zh-cn
//手动建立或者用命令建立都行
php think build my //指令建立my文件,自动在app文件夹下生成文件,然后手动建立route文件和其下面的router.php文件
//手动建立参考下图
控制器是在my/controller文件,如图
我一共是建了5个控制器,主要是从c.php和a1.php、a2.php区别不同
a1.php:分别连接不同数据库
query($sql);
$sql="SELECT * FROM `test` where id=777";
$query = Db::connect('user2')->query($sql);
return json($query);
}
}
a2.php:使用其他控制器的方法
c.php:接收前端的数据并返回数据
request->get();
return json($param) ;
}
}
但是前端会报错,跨域问题,所以要在my/middleware.php设置跨域,代码如下
b1.php和b2.php与上面的功能类似,不做细说
控制器写好了,可以通过控制器访问,也可以通过路由访问,二者选其一
c.php:域名/my/c/testc
a1.php的testc:域名/my/a.a1/testc
需要配置文件,route/router.php
//自己设定端口
php think run -p 8086
我是用的phpstudy集成环境
根目录设置为public,测试的时候发现会404,所以要写个伪静态
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}