tp5.1学习基础

1,先配置环境,这里使用的服务器环境是 phpstudy服务器环境,选择要搭配的服务器
tp5.1学习基础_第1张图片
如何让电脑知道你运行的是哪一个php版本呢,可以在D:\phpStudy\PHPTutorial\php\php-7.2.1-nts 找到要使用的php版本,然后把这个路径配置为全局变量
tp5.1学习基础_第2张图片
配置好后,在cmd里面运行php命令,没有报错,说明配置成功
tp5.1学习基础_第3张图片
安装Composer ,但是这个插件是依靠php运行的,安装时候,需要制定用的哪一个php版本
链接:https://pan.baidu.com/s/1K86Mhe6vP9ECWGNfZfg0lA
提取码:51at
下载以后进行安装
在这里插入图片描述
安装好后,在cmd的黑屏里面运行Composer 命令,会看到下面情况,说明安装成功
tp5.1学习基础_第4张图片

phpstudy配置站点的时候一定要注意,如果选择的阿帕奇服务器,以下配置目录的分隔符是正确的
在这里插入图片描述
但是如果选择的Nginx服务器,配置的路径分隔符,一定要改成/符号

tp5.1学习基础_第5张图片
否则容易报错服务器500的错误

下面就是用phpstudy配置,运行tp5.1的站点环境
1,创建站点文件夹
tp5.1学习基础_第6张图片
2,配置站点
tp5.1学习基础_第7张图片
tp5.1学习基础_第8张图片
以上配置好以后,然后配置host文件
tp5.1学习基础_第9张图片

配置好以后,保存重启phpstudy,然后 浏览器访问配置的www.tp.com就可以访问tp5.1了
tp5.1学习基础_第10张图片
以上站点配置成功

使用composer安装迁移文件时候,会遇到安装延迟或者安装不上的问题,主要是外国网站太慢,可以先使用国内镜像,执行以下代码

composer config -g repo.packagist composer https://packagist.phpcomposer.com

注意:最近phpcomposer镜像存在问题,也可以改成

composer config -g repo.packagist composer https://packagist.laravel-china.org

之后再执行安装迁移文件命令

composer require topthink/think-migration=1.*

在phpstorm开发环境里执行如下
tp5.1学习基础_第11张图片
安装成功以后,执行 php think 命令,会显示以下命令键
tp5.1学习基础_第12张图片
有以上的命令行,说明迁移文件安装成功

thinkphp5.1 配置完成以后,因为页面所有数据都是通过数据库来获得的,所以第一件事就是配置数据库

1,先要建设好需要使用的数据库,注意密码 账号
tp5.1学习基础_第13张图片
2,之后在tp框架里面配置连接数据库所需要的条件
tp5.1学习基础_第14张图片

我们访问域名就可以进入以下页面,是怎么样跳转的呢?在哪里配置的

tp5.1学习基础_第15张图片
tp5.1学习基础_第16张图片
index控制器里面的index方法如下
tp5.1学习基础_第17张图片
通过地址栏输入 模块/控制器/方法名 的输入 进行方法的调用 ,如下面的页面跳转
tp5.1学习基础_第18张图片
上面的跳转调用的news方法,是我们再index控制器里面自定义的news方法
tp5.1学习基础_第19张图片

控制器的创建

我们一般一个控制器只做一个功能的实现,比如发布文章控制器,或者登陆控制器,或者注册控制器,或者发布产品控制器,tp给我们提供了生成控制器命令,使用如下来创建控制器
tp5.1学习基础_第20张图片
1,资源控制器 里面有建好的方法可以使用,普通的控制器,只是建了一个类,里面的方法需要我们自己去创建
tp5.1学习基础_第21张图片
tp5.1学习基础_第22张图片

路由的使用

如果访问每一个控制器的方法,要通过地址输入来实现,我们会记不住或者写起来繁琐,这就需要使用路由来解决
比如下面的两个图,怎么来实现呢?
tp5.1学习基础_第23张图片
tp5.1学习基础_第24张图片
如果要实现上面的效果,就可以通过路由来配置
tp5.1学习基础_第25张图片

资源路由的配置和使用规则

资源控制器会自动生成很多方法,如果用普通路由配置,需要写很多,比较麻烦,这里就需要使用资源路由来配置资源控制器了!

tp5.1学习基础_第26张图片
下面是资源路由控制器生成的规则匹配的方法
tp5.1学习基础_第27张图片

路由传参给后台如何处理

如果携带一些数据传递给后台控制器的方法使用,如何实现呢?
tp5.1学习基础_第28张图片
tp5.1学习基础_第29张图片
tp5.1学习基础_第30张图片

模板文件view

tp5.1学习基础_第31张图片
以下是默认规则
tp5.1学习基础_第32张图片

数据迁移工具

1,先下载数据迁移工具 命令如下

composer require topthink/think-migration=1.*

2,下载完成后,查看有没有安装好
tp5.1学习基础_第33张图片
tp5.1学习基础_第34张图片
也可以执行 php think 命令,查看迁移文件

如何执行数据迁移命令呢?

1,创建迁移文件
tp5.1学习基础_第35张图片
2,创建命令执行以后,会出现创建的迁移文件,在迁移文件的change方法里面执行创建表的方法
tp5.1学习基础_第36张图片
3,创建表
tp5.1学习基础_第37张图片
4,执行创建命令
tp5.1学习基础_第38张图片
之后,就在数据库中创建了一个user表

迁移的回滚撤销操作

当我们执行完迁移创建命令以后,发现表里少了字段,我们就可以通过回滚命令进行重新创建
tp5.1学习基础_第39张图片
上面的方法就可以把前一个步骤创建的迁移表给撤销,然后下面对迁移文件更改,添加字段就可以了
tp5.1学习基础_第40张图片
之后再重新执行迁移文件就可以了
tp5.1学习基础_第41张图片

注意:迁移回滚是一步一步的往前回滚,

数据填充

就是给数据表里面填充数据,一般前台用户,通过注册就可以往用户表里面添加数据,但是后台不是开放给用户的,是给使用者来用的,所以这里不能注册,只能通过填充数据的方式,往数据表里添加数据
tp5.1学习基础_第42张图片

tp5.1学习基础_第43张图片
tp5.1学习基础_第44张图片
tp5.1学习基础_第45张图片

公共模块的替换和原理

tp5.1学习基础_第46张图片
tp5.1学习基础_第47张图片
tp5.1学习基础_第48张图片
上面的子文件继承父模板的路径 ./common/father 为什么不是…/common/father 呢?可以把index文件夹看成一个类,index.html看成一个方法

控制器里面的方法如何把数据传送展示到对应的模板文件上?

tp5.1学习基础_第49张图片

tp5.1学习基础_第50张图片
tp5.1学习基础_第51张图片
tp5.1学习基础_第52张图片

模型类来获得数据库中表的数据

tp5.1学习基础_第53张图片
tp5.1学习基础_第54张图片
tp5.1学习基础_第55张图片
tp5.1学习基础_第56张图片
tp5.1学习基础_第57张图片
tp5.1学习基础_第58张图片
tp5.1学习基础_第59张图片
tp5.1学习基础_第60张图片

在控制器方法里面通过db助手类和方法或者数据

tp5.1学习基础_第61张图片

用tp写一个注册功能

tp5.1学习基础_第62张图片
上面的是首页样式,下面是添加注册功能,每一个功能都使用一个控制器来实现,下面就是生成一个普通的注册控制器
tp5.1学习基础_第63张图片
生成如下
tp5.1学习基础_第64张图片
给注册加链接跳转
tp5.1学习基础_第65张图片
tp5.1学习基础_第66张图片
下面,根据控制器名 和方法名,创建文件夹名和模板名
tp5.1学习基础_第67张图片
tp5.1学习基础_第68张图片
tp5.1学习基础_第69张图片
tp5.1学习基础_第70张图片
tp5.1学习基础_第71张图片
tp5.1学习基础_第72张图片

在注册表里面,有密码和验证密码,如何确保这两个密码是否一致呢?tp提供了一定的机制

tp5.1学习基础_第73张图片
tp5.1学习基础_第74张图片
以上是注册功能,下面完成登录功能

登录功能实现

tp5.1学习基础_第75张图片
之后跳转到登陆页面,通过表单把数据提交给post方法,来处理,如下
tp5.1学习基础_第76张图片
tp5.1学习基础_第77张图片

上面登陆成功以后,会跳转到根目录里面,但是根目录的头部的登陆还是显示登陆,而不是显示的用户登陆名!怎么来实现呢?

这就需要借助session来处理了,当我们确定登陆成功以后,就会在服务器session里面存入登陆的用户名和ID号,这样就可以跨页面查询session里面存放的数据
tp5.1学习基础_第78张图片
tp5.1学习基础_第79张图片
tp5.1学习基础_第80张图片
上面实现了登陆用户名的显示,如何实现退出呢? 方法如下
tp5.1学习基础_第81张图片
tp5.1学习基础_第82张图片
tp5.1学习基础_第83张图片

session类和session方法存储数据

tp5.1学习基础_第84张图片
在这里插入图片描述

缓存类的使用(缓存也可以夸页面调用)

当我们一些数据需要在一段时间内使用,就可以使用缓存,而不是用到时再到数据库去拿,这样容易增加服务器压力
tp5.1学习基础_第85张图片
tp5.1学习基础_第86张图片

注意,控制器里面的方法,获得表单传来的数据,有两种方法,$request->post()$request->param() 但是$request->post()只能接受post提交的表单,$request->param()可以获得任何形式提交的表单

发布文章功能实现知识要点

①添加文章的实现
tp5.1学习基础_第87张图片
tp5.1学习基础_第88张图片
tp5.1学习基础_第89张图片
② 获取文章数据
tp5.1学习基础_第90张图片
tp5.1学习基础_第91张图片
tp5.1学习基础_第92张图片
tp5.1学习基础_第93张图片
③对文章列表的编辑
tp5.1学习基础_第94张图片
tp5.1学习基础_第95张图片
tp5.1学习基础_第96张图片
tp5.1学习基础_第97张图片
tp5.1学习基础_第98张图片
第二种通过模型类来保存修改的文章数据
tp5.1学习基础_第99张图片
第三种修改数据保存的方法(只允许指定的字段进行修改,tp提供了一个方法)

tp5.1学习基础_第100张图片
④对文章的删除
tp5.1学习基础_第101张图片
tp5.1学习基础_第102张图片
下面是第一种删除方法
tp5.1学习基础_第103张图片
下面是第二种删除方法
tp5.1学习基础_第104张图片

TP5.1提供的验证码的功能

一般登陆页面都需要给与验证码,防止攻击,那么如何使用验证码功能呢?
tp5.1学习基础_第105张图片
tp5.1学习基础_第106张图片
tp5.1学习基础_第107张图片
上面实现了基本的验证码的功能,那如何自定义验证码的一些属性呢?比如显示汉字,显示几个字符,方法如下
tp5.1学习基础_第108张图片
tp5.1学习基础_第109张图片
验证码已经实现,但是如果登陆,如何判断验证码输入的对错?
tp5.1学习基础_第110张图片
tp5.1学习基础_第111张图片

模型关联(其实是数据表的关联)

一般,数据库里面有两张表,一张是用户表,一张是文章表,如何关联呢? 一个用户有多个文章,所以这是一对多的表关联,

关联需要在模型类里面定义
tp5.1学习基础_第112张图片
这样,用户表就和文章表进行了关联
tp5.1学习基础_第113张图片

用关联的方式添加文章,因为文章表里面有标题 内容和作者

tp5.1学习基础_第114张图片
删除用户的同时还要删除用户发表的文章
在这里插入图片描述
tp5.1学习基础_第115张图片
tp5.1学习基础_第116张图片

你可能感兴趣的:(PHP)