前言

使用的是tp6 版本

安装

# 通过composer安装,目录名thinkphp
# 我在 /Users/xieruixiang/php 目录下执行
composer create-project topthink/think thinkphp
# 得到 /Users/xieruixiang/php/thinkphp

省略index.php

# 这里我使用nginx + php-fpm
# 省略index.php,配置nginx
if (!-e $request_filename) {rewrite  ^(.*)$  /index.php?s=/$1  last;
}# 设置完后 localhost/index.php/home/look url就等价于
# localhost/home/look

开启多应用

# 不介绍单应用了,一般一个项目不会只有一个应用,其次多应用兼容单应用
# 通过 composer require topthink/think-multi-app 安装多应用组件
# 其原理通过增加一个中间件来使路由指向正确的位置
# 安装后的app下的每一个目录都可以作为应用
# 每个应用下可以有独立的 controller,model,view,route,config 等目录
composer require topthink/think-multi-app

常用路由

# 默认路由
# 要带上应用模块
# /应用名/控制器名/方法名
# 以 app/admin/controller/Home.php 控制器为例 其中有look方法
# 如果要访该方法,通过
localhost/admin/home/look# 如果控制器方法不是在controller目录下,而是在controller的目录下
# 则需要通过 /应用名/子目录.控制器名/方法名进行访问
# 以 app/admin/controller/base/Home.php 控制器为例 其中有look方法
http://localhost/admin/base.home/look
# 指定路由
# 写在route目录下
# 以admin应用为例 app/admin/route/web.php
# web.php 可以改成其他名称,反正tp会加载route下的所有php文件
# 使用 think\facade\Route 门面
# Route::"method"("url","controller/action")
# method 限制其访问方法
# url 路由名 访问时需要带上应用名   /应用名/url
# controller控制器在当前应用中的位置
# action 即controller的方法
use think\facade\Route;
Route::get('home', 'base.home/look');
# 可以用过 http://localhost/admin/home 访问
# 其等价于 http://localhost/admin/base.home/look
# 资源路由
# Route::resoure("url","controller")
# url 路由名 访问时需要带上应用名   /应用名/url
# controller控制器在当前应用中的位置
# 这条路由会创建7条符合RESTful api的路由
Route::get('home', 'base.home');
# 等价创建
Route::get('home', 'base.home/index');
Route::get('home/create', 'base.home/create');
Route::post('home', 'base.home/save');
Route::get('home/:id', 'base.home/read');
Route::get('home/:id/edit', 'base.home/edit');
Route::put('home/:id', 'base.home/update');
Route::delete('home/:id', 'base.home/delete');

验证码

# 使用think-captcha 扩展
composer require topthink/think-captcha
# 可以通过config/captcha.php配置验证码的参数
return [//验证码位数'length' => 5,// 验证码字符集合'codeSet' => '2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY',// 验证码过期时间'expire' => 1800,// 是否使用中文验证码'useZh' => false,// 是否使用算术验证码'math' => false,// 是否使用背景图'useImgBg' => false,//验证码字符大小'fontSize' => 25,// 是否使用混淆曲线'useCurve' => true,//是否添加杂点'useNoise' => true,// 验证码字体 不设置则随机'fontttf' => '',//背景颜色'bg' => [243, 251, 254],// 验证码图片高度'imageH' => 100,// 验证码图片宽度'imageW' => 500,// 添加额外的验证码设置'verify' => ['length'=>4,],
];# 在模版中简单使用,其加载的是config/captcha.php 配置
<div>{:captcha_img()}</div>
# 要想灵活使用可以自己定义方法
# 方法中通过captcha("config")使用创建验证码方法
# config 为 null 时加载 config/captcha.php
# config 不为null 时加载 config/captcha.php 中的 “config” 属性
captcha(‘verify’)
# 加载的是 config/captcha.php 中的verify属性
# 故验证码只有四个组成
# 验证码的验证需要开启session
# seesion开启依赖于中间件
# 我只在admin应用中使用session
# app/admin/middleware.php 开启session
return [\think\middleware\SessionInit::class
];# 第一中验证验证码是否正确
# captcha_check($captcha)
# $captcha验证码的值
# 正确返回true,错误返回false
captcha_check("abc12")

第二种通过验证器验证


namespace app\admin\controller\base;use app\BaseController;
use think\Validate;class Home extends BaseController
{public function index(){return captcha('verify');}public function check(){$captcha = input('captcha', "");$validate = new Validate();$validate->rule(['captcha' => 'require|captcha'])->message(['captcha.captcha' => '验证码错误'])->check(['captcha' => $captcha]);if ($error = $validate->getError()) {return $error;}return "验证码正确";}}

Thinkphp快速入门(一)相关推荐

  1. php tp3 操作绑定到类,快速入门 17:操作绑定到类

    # 快速入门(十七):操作绑定到类 如果你的应用规模比较大,每个操作方法彼此相对独立,那么就可以尝试下操作绑定到类的功能. ## 定义 系统提供了把每个操作方法定位到一个类的功能,可以让你的开发工作更 ...

  2. composer 依赖包版本冲突_composer快速入门教程

    php中文网最新课程 每日17点准时技术干货分享 Composer 是 PHP 的一个依赖管理工具.我们可以在项目中声明所依赖的外部工具库,Composer 会帮你安装这些依赖的库文件,有了它,我们就 ...

  3. 第1讲韩顺平 PHP视频教程 zend framework zend介绍 zend快速入门 韩顺平php视频教程ppt 笔记心得

    韩顺平 PHP视频教程  zend framework  PPT笔记心得 本教程贯穿了两个软件公司常用的两个项目,数据采集系统和购物车,共分20讲从本质上深入浅出的分析了zend framework运 ...

  4. thinkph 上花院 生多行mysql_PHP_ThinkPHP3.1基础知识快速入门,在当今众多的MVC框架中,ThinkPH - phpStudy...

    ThinkPHP3.1基础知识快速入门 在当今众多的MVC框架中,ThinkPHP是一个快速.简单的基于MVC和面向对象的轻量级PHP开发框架,其遵循Apache2开源协议发布,自从诞生以来一直秉承简 ...

  5. Shiro第一个程序:官方快速入门程序Qucickstart详解教程

    目录 一.下载解压 二.第一个Shiro程序 1. 导入依赖 2. 配置shiro配置文件 3. Quickstart.java 4. 启动测试 三.shiro.ini分析 四.Quickstart. ...

  6. 计算机入门新人必学,异世修真人怎么玩?新手快速入门必备技巧

    异世修真人怎么快速入门?最近新出来的一款文字修仙游戏,很多萌新不知道怎么玩?进小编给大家带来了游戏新手快速入门技巧攻略,希望可以帮到大家. 新手快速入门攻略 1.开局出来往下找婆婆,交互给点钱,旁边有 ...

  7. Spring Boot 2 快速教程:WebFlux 快速入门(二)

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘 ...

  8. Apache Hive 快速入门 (CentOS 7.3 + Hadoop-2.8 + Hive-2.1.1)

    2019独角兽企业重金招聘Python工程师标准>>> 本文节选自<Netkiller Database 手札> 第 63 章 Apache Hive 目录 63.1. ...

  9. 《iOS9开发快速入门》——导读

    本节书摘来自异步社区<iOS9开发快速入门>一书中的目录,作者 刘丽霞 , 邱晓华,更多章节内容可以访问云栖社区"异步社区"公众号查看 目 录 前 言 第1章 iOS ...

最新文章

  1. 苹果风格:分享一组免费的自定义 MacOS 图标
  2. VTK:Filtering之ConnectivityFilter
  3. 基于域名的apache服务器
  4. 浅谈Opencl之OpenCL_flush 和 finish区别
  5. Flask + Vue.js : Fullstack Development
  6. 关于国庆假期延长的通知
  7. 鸿蒙系统下载地址_华为鸿蒙系统下载
  8. Python:火山小视频-无水印视频-多线程-批量采集实现和完整代码
  9. KITTI Odometry数据集处理:将全局pose转换为帧间pose转换
  10. html当当书网站 html网上在线书城 html在线小说书籍网页 当当书城网页设计
  11. 怎么做扁平化ps图标长投影效果
  12. 扣哒世界的游戏开发2-2军事训练2
  13. 简述MySQL分区表类型
  14. PHP涉及的所有英文单词
  15. 常用的软件(百度网盘分享:永久有效)
  16. 关于SQL_Errno1677导致主从复制中断处理
  17. chai断言库学习3-Core Plugin Concepts
  18. 九联unt401h装软件_九联UNT401H南传刷机包 V1.0 免费版
  19. 计算机信息化教育的意义,论信息技术对于教育的重要性
  20. 汉字的Unicode 内码

热门文章

  1. 四参数坐标转换c++_写给测绘新手,四参数与七参数坐标转换含义及区别
  2. 2022-2028全球与中国食品饮料包装透明沉积膜市场现状及未来发展趋势
  3. 微信小程序wxs文件,(indexOf方法)
  4. 头歌-数据结构与算法 - 线性表
  5. Final Cut Pro X 10.4.9 中文英文多语言版-苹果视频剪辑FCPX软件
  6. 反洗钱机器学习_为什么不使用机器学习来打击洗钱活动?
  7. 贪心算法解决马的遍历(带蹩马腿)
  8. [无线] 让Android支持cmwap上网
  9. web应用越权问题的三个解决思路
  10. MATLAB学习八(四):相关系数corrcoef