ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 什么是thinkphp 1. 国人开发的php框架 2. 源码中文注释, 方便理解 3. 中文文档详尽 4. 使用者多, 教程丰富 ## 官网 * http://www.thinkphp.cn/ * https://www.kancloud.cn/manual/thinkphp5/118003(官方文档) ## 安装 1. 官网下载, 复制粘贴 2. 检查环境 3. 访问public文件夹 ## 配置虚拟主机 * 配置vhosts-conf * 修改hosts ## URL路径设计 * http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作/[参数名/参数值…] ## 格式化php代码 1. 安装phpfmt插件 ~~~ ctrl+shift+p 搜索phpfmt enter ~~~ 2. 配置插件 ~~~ { "format_on_save": true, "php_bin": "G:/phpStudy/php/php-7.0.12-nts/php.exe", } ~~~ 3. psr1和psr2区别 `花括号点位置不同` ## API友好 ~~~ <?php namespace app\index\controller; class Index { public function index() { $data = array( 'name' => 'red_panda', 'address' => 'China', ); $code = 200; $msg = 'ok'; return ['data' => $data, 'code' => $code, 'message' => $msg]; } } ~~~ ~~~ 'default_return_type'=>'json' ~~~ ## 获取请求参数 ~~~ <?php namespace app\index\controller; use \think\Request; class Index { public function index() { $request = Request::instance(); echo '请求方法:' . $request->method() . '<br/>'; echo '访问地址:' . $request->ip() . '<br/>'; echo '请求参数:'; dump($request->param()); echo '请求参数:仅包含name,sex'; dump($request->only(['name', 'sex'])); echo '请求参数:排除name,sex'; dump($request->except(['name', 'sex'])); } } ~~~ ## 判断请求类型 ~~~ // 是否为 GET 请求 if (Request::instance()->isGet()) echo "当前为 GET 请求"; // 是否为 POST 请求 if (Request::instance()->isPost()) echo "当前为 POST 请求"; // 是否为 PUT 请求 if (Request::instance()->isPut()) echo "当前为 PUT 请求"; // 是否为 DELETE 请求 if (Request::instance()->isDelete()) echo "当前为 DELETE 请求"; // 是否为 Patch 请求 if (Request::instance()->isPatch()) echo "当前为 PATCH 请求"; ~~~ ## 验证参数数据 ~~~ <?php namespace app\index\controller; use \think\Validate; class Index { public function index() { $rule = [ 'name' => 'require|max:25', 'age' => 'number|between:1,120', 'email' => 'email', ]; $msg = [ 'name.require' => '名称必须', 'name.max' => '名称最多不能超过25个字符', 'age.number' => '年龄必须是数字', 'age.between' => '年龄只能在1-120之间', 'email' => '邮箱格式错误', ]; $data = input('post.'); $validate = new Validate($rule, $msg); $result = $validate->check($data); if (!$validate->check($data)) { dump($validate->getError()); } } } ~~~ ## 连接数据库 ~~~ /* 数据库设置 */ 'database' => [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'thinkphp', // 数据库用户名 'username' => 'root', // 数据库密码 'password' => '', // 数据库连接端口 'hostport' => '', // 数据库连接参数 'params' => [], // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => '', // 数据库调试模式 'debug' => false, ], ~~~ ## 原生sql语句查询 ~~~ <?php namespace app\index\controller; use think\Db; class Index { public function index() { $res = Db::query('select version()'); return $res; } } ~~~