1.安装
3种方式:
- github下载
- 官网下载
- Composer安装
2.配置
//前提
在public目录下的index.php中配置 所需要应用配置的路径
define('CONF_PATH', _DIR_ . '/../config')
以下此目录代表根目录下config目录
此目录下config.php用来覆盖thinkphp下的convertion.php 在不改变默认配置的情况下应用自己配置
//场景配置
此目录下home/office 为场景配置。用来针对不同环境下对同一项目的编写
//扩展配置
在此目录下添加extra目录,其子文件名称为添加到配置中的key,文件中return的数组为配置中key对应的value
此目录下database.php也是扩展配置
//动态配置
在app目录下,类中添加方法
public function _construct()
{
config('before', 'beforeAction');
}
此方法在任何方法执行前都会执行。所以任何方法都会应用此配置
如果在方法中设置 config('after', 'afterAction');
则该配置只会在此方法中生效。
//模块配置
//文件夹名称应该于app中的文件夹名对应
//即所设置的配置只应用到app中同名的类中
//环境变量设置
$_ENV 为系统中环境变量
在php根目录下添加 .env文件。文件中设置新的环境变量
可利用.env文件实现场景配置。
在config文件中
use think\Env //Env类配置环境
'app_status' => Env::get('app_status', 'dev')
第二个参数为若未设置,则使用的默认设置。
//助手函数
目录为 thinkphp/helper.php
3.入口文件绑定
- 直接绑定模块
public/index.php内
define(''BIND_MODULE', 'admin/index');
此时在网页中访问localhost/admin/index/xxx可直接简化为localhost/xxx
注意:一但绑定则所有路径前均带有该路径
- 自动绑定
在上述的config.php文件中设置
'auto_bind_module' => true,
自动对应模块。若不存在模块则进入默认,而不报错。
4.路由
thinkphp5 中默认开启路由功能
在config目录下创建 route.php
config.php
<?php
return [
'url_route_on' => true,
'url_route_must' => false //所有路径必须配置过路由
];
route.php
<?php
return [
'new/:id' => 'xxx/xxx/bbb/id/aa '
];
设置完成后当访问到bbb方法时传递的id=aa参数,在url路径上为new/aa
5.请求对象
1. 请求对象的获取
use think\Request;
class Index
{
public function index()
{
$request = Request::instance(); // 单例模式的对象
}
}
use think\Request;
class Index
{
public function index(Request $request)
{
}
}
推荐使用
class Index
{
public function index()
{
$request = request();
}
}
2.请求对象参数的获取
$request->domain(); //获取域名
$request->pathinfo(); //'?'前域名后的所有部分 baseUrl()
$request->path; //不含后缀名
$request->method(); //获取请求类型
$request->isGet();
$request->isPost();
$request->isAjax();
$request->get(); //获取?后的值
$request->post();
$request->param(); //获取所有参数
$request->session();
$request->cookie();
可以通过传参,来获取指定的值。第二个参数表示默认值。
$request->module(); //获取当前模块
$request->controller(); //获取当前控制器
$request->action(); //获取当前方法
所有方法在thinkphp/library/think/Request.php中描述
可以使用
input助手函数
改变响应格式
config.php中
default_return_type => 'json'
或者在需要的类下动态设置
Config::set('default_return_type','json');