13 04 2019

PHP框架 - ThinkPHP5.1

一、composer安装

        1.1 安装地址:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/   或者  composer config -g repo.packagist composer https://packagist.phpcomposer.com

二、ThinkPHP安装

        2.1 安装具体版本命令:composer create-project topthink/think=5.1.41 51test

        image.png

        ① 安装不成功,切换一下镜像:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer

        image.png

        image.png

        ② 如果需要更新项目版本,直接进入项目根目录,直接运行如下代码:composer update topthink/framework

三、ThinkPHP框架

        3.1 URL解析模式

        ① 普通模式:

        image.png

        ② pathinfo模式:

        image.png

        ③ rewrite模式:需要修改配置文件,打开apache的httpd.conf文件, 搜索mod_rewrite.so, 把前面的#去掉就行;然后在index.php入口文件的统计文件目录下新建.htaccess文件(此文件框架安装以后默认有)

        image.png

        ④ 兼容模式:

        image.png


        3.2 模块设计

        ① 绑定模块:修改public/index.php文件

        image.png

        3.3 控制器

        ① 修改命名空间的应用名称:在项目的根目录新建一个.env的文件,里面指定应用名

        image.png

        image.png

        image.png

        ② 渲染输出

        ②.① 直接return

        image.png

        ②. 使用json输出,return  json(), 两种形式都可以

        image.png

        ②.③ 模板输出,     return view()


        ③ 控制器前置操作

        image.png

        ④ 跳转和重定向

        ④.① 

        image.png

        ④.②  跳转页面设置,根目录/config/app.php配置文件中修改

        image.png


        ⑤ 空方法和空控制器

        ⑤.① 空方法

        image.png

        ⑤.② 空控制器    在对应模块目录下新建一个Error.php, config/app.php默认空控制器名称是Error

        image.png

        image.png

        image.png

        3.4 数据库操作

        ① 操作数据库

        image.png

        ② 模型    处理和配置数据库相关信息

        image.png

        image.png

        image.png

        ③ 基本查询操作

        ③.①  基本查询操作

        image.png

        image.png

        image.png

        ③.②  更多查询操作

        image.png

        ④  新增数据

        image.png

        image.png

        image.png

        image.png

        ⑤  修改数据

        image.png

        image.png

        image.png

        image.png

        ⑥  删除数据

        image.png

        ⑦区间查询

        image.png

        image.png

        image.png

        ⑧ 其它查询    exp表示自定义的,where第三个参数自己发挥

        image.png

        ⑨ 时间查询

        ⑨.① 传统查询方式:

        image.png

        ⑨.② 快捷查询方式:

        image.png

        ⑩ 固定查询

        image.png

        image.png

        ①① 其它查询

        image.png

        ①② 聚合、原生和子查询

        image.png

        ①②.①  子查询:

        image.png

        image.png

        ①②.②  链式操作

        image.png

        image.png

        ①②.③  field

        image.png

        image.png

        注意:第5条的 field(true) ,数据库查询的时候不用回表,效率比 * 高多了

        ①②.④  链式操作下..

        limit

        image.png

        page

        image.png

        order

        image.png

        group

        image.png

        image.png

        having

        image.png

        

        3.5 模型

        ① 模型定义

        image.png

        ② 设置模型

        image.png

        image.png

        ③ 模型操作

        image.png

        注意:第2条,数据库操作返回的数据接口是数组数组,模型操作返回的是对象数组,对象数组

        ④ 模型新增数据

        image.png

        image.png

        image.png

        image.png

        ⑤ 模型删除数据

        image.png

        image.png

        ⑥ 模型修改

        image.png

        image.png

        image.png

        image.png

        ⑦ 模型查询

        image.png

        image.png

        image.png

        image.png

        ⑧ 模型获取器

        image.png

        image.png

        ⑨ 模型修改器

        image.png

        ⑩ 模型搜索器

        image.png

        image.png

        image.png

        控制器中:

        image.png

        模型中:

        image.png

        ①① 模型数据集

        image.png

        image.png

        image.png

        ①② 模型自动时间戳和指定字段

        image.png

        image.png

        ①③ 模型类型转换和数据完成

        image.png

        ①④ 模型查询范围

        image.png

        image.png

        image.png

        ①⑤ 模型输出

        image.png

        image.png

        

        3.6 JSON字段

        image.png

        ① 在数据库创建一个json字段

        image.png

        ② 添加数据

        image.png

        image.png


        3.7 路由

        ① 路由定义

        image.png

        image.png

        image.png

        image.png

        image.png

        ② 路由的变量规则和闭包

        image.png

        image.png

        image.png

        ② 路由地址

        image.png

        image.png

        image.png

        image.png

        ③ 路由缓存

        image.png

        ④ 路由参数

        image.png

        image.png

        ⑤ 快捷路由

        image.png

        ⑥ 路由分组

        image.png

        image.png

        image.png

        image.png

        ⑦ 路由注解

        image.png

        ⑧ 路由MISS

        image.png

        image.png

        image.png

        ⑨ 跨域请求

        image.png

        image.png

        image.png

        image.png

        ⑩ 路由绑定

        image.png

        ①① 路由别名

        image.png

        ①② 资源路由

        image.png

        image.png

        image.png

        ①② 域名路由

        image.png

        image.png

        image.png

        ①③ 域名绑定

        image.png

        ①④ 路由URL地址生成

        image.png

        image.png

        image.png

        image.png

        

        3.8 请求对象

        ① 请求对象

        image.png

        image.png

        image.png

        image.png

        ② 请求信息

        image.png

        image.png

        ③ 请求变量

        image.png

        image.png

        image.png

        image.png

        image.png

        image.png

        image.png

        ④ HTTP头信息

        image.png

        ⑤ 伪静态

        image.png

        ⑥ 参数绑定

        image.png

        image.png

        ⑦ 请求缓存

        image.png

        ⑧ 响应操作

        image.png

        image.png

        ⑨ 文件下载

        image.png

        

        3.9 容器和依赖注入

        ① 依赖注入

        image.png

        image.png

        ② 容器

        image.png

        image.png

        image.png

        ③ facade

        image.png

        image.png

        image.png

        image.png

        image.png

        

        3.10 钩子和行为

        ① 概念

        image.png

        ② 案例演示

        image.png

        image.png

        image.png

        image.png

        image.png

        

        3.10 中间件

        ① 中间件定义

        image.png

        image.png

        image.png

        image.png

        ② 前后置中间件

        image.png

        ③ 路由中间件

        image.png

        image.png

        image.png

        image.png

        ④ 控制器中间件

        image.png

        image.png

        

        3.11 异常处理

        ① 异常处理

        image.png

        image.png

        image.png

        image.png

        

        3.12 日志处理

        ① 日志处理

        image.png

        image.png

        image.png

        image.png

        image.png

        

        3.13 验证器

        ① 验证器定义

        image.png

        image.png

        image.png

        image.png

        image.png

        image.png

        ② 验证场景

        image.png

        image.png

        ③ 验证静态调用

        image.png

        ④ 表单令牌

        image.png

        image.png

        ⑤ 验证规则

        image.png

        

        3.14 session

        ① session

        image.png

        ② scookie

        image.png

        image.png

        image.png

        image.png


        3.15 多语言

        ① 多语言配置

        image.png

        image.png

        image.png

        


        3.16 文件上传

        ① 单文件上传

        image.png

        image.png

        ② 多文件上传

        image.png

        image.png


        3.17 缓存功能

        ① 缓存配置

        image.png

        image.png

        image.png

        

        3.18 验证码功能

        ① 验证码

        下载验证码命令:composer require topthink/think-captcha=2.0.*

        image.png

        image.png

        image.png

        image.png

        

        3.19 数据库事件

        ① 数据库事件

        image.png

        image.png

        ① 模型事件

        image.png

        image.png

        

        3.20 关联模型

        ① 关联模型定义

        image.png

        image.png

        主表模型

        image.png

        附表模型

        image.png

        控制器

        image.png

        image.png

        image.png

        image.png

        ② 一对一关联查询

        image.png

        image.png

        ③ 一对多关联查询

        image.png

        image.png

        image.png

        ④ 关联预载入

        image.png

        image.png

        image.png

        image.png

        ⑤ 关联统计

        image.png

        ⑥ 关联输出

        image.png

        ⑦ 多对多关联

        image.png

        image.png

        image.png