Thinkphp6快速入门一

转载 原文:https://www.cnblogs.com/taoxiaoyao/p/12726333.html

为什么学ThinkPhp6?

​ php是世界上最好的语言。thinkphp是最流行的php框架。thinkphp6版本是最新最前沿的版本。屏幕前学习的你,嗯,是最好看的.

这优势,没的说,赶紧买买买!!!哦不说错了,学它学它选它~物美价廉,大家快来学啊!!!
开始thinkphp6:

thinkphp6其实就是thinkphp5.2,6是最新的版本,很多人听过thinkphp3点几,thinkphp5.0,thinkphp5.1,很好奇为什么不见5.2呢。事实上,从5.1到5.2版本变化太大了,就换掉了小版本的迭代,直接取名新的大版本6.0。thinkphp6虽然发行没多久,但是版本迭代的也挺快的,因此未来主流肯定是6版本。

我的建议,开始学的时候,一定一定不要去看开发文档。看开发文档来学习效果事倍功半。开发文档是给有基础的人用的,是已经会开发的人用的一个手册,而对于初学者最好最快的学习方法就是看视频,推荐视频thinkphp6教程:
b站教学视频(虽然这个视频不是特别好,但聊胜于无)。
安装配置:

环境及下载:

php版本>7(集成服务phpstudy可以很方便的下载并管理不同版本的php)
下载管理工具composer
下载thinkphp6

thinkphp6的php环境支持是>7以上:我用的的服务器集成软件PHPStudy,在里面很方便的下好了php7.3,还能切换版本。

下载php管理工具composer,这个工具后面会用到,强烈要求下载。因为现在thinkphp6搞的跟python一样,就像python使用包工具pip或者easy_stall,composer工具敲命令也可以快速安装相关依赖。首先composer可以用来下最新的thinkphp6,官方也推荐这种下载。但是,thinkphp6文件也可以不用composer下载,在官网中有链接,百度云盘的那种,如果有其他问题导致composer下载tp6不成功,就使用后者方法。

composer的安装:推荐菜鸟教程,[菜鸟教程下载composer工具:](https://www.runoob.com/w3cnote/composer-install-and-usage.html)除了自己的安装目录以及选择php.exe文件目录以外一直下一步就好了。然后再改一下镜像。菜鸟教程有说。

下载thinkphp6使用composer各种版本下载thinkphp教程(这个可以看开发文档),可是我下的不很成功,最后没有去纠结问题出在哪。直接改用网盘下载了,thinkphp链接网盘。

下好之后,在服务器集成工具phpstudy中新建一个网站,配置好我的apache的网站相关信息:主要是网站根目录域名绑定,我的根目录是D盘下的php_site目录,根目录在浏览器网址栏上的体现是www.cool.xiongmm.cn/ (www.cool.xiongmm.cn是我的本地域名),配置好网站信息然后开启apache的服务:再把下好的thinkphp6框架文件放在根目录下,可以改个名tp6(名字简短,便于访问)。
下面是我本地配置的截图:


测试是否安装成功,thinkphp的对外部公开可以访问的目录是public,相当于我们java项目下的Java Resource资源文件夹。所以如果不另外设置,任何不包含public目录的路由都不可访问:此时我在浏览器中输入:www.cool.xiongmm.cn/tp6/public或者www.cool.xiongmm.cn/tp6/public/index.php/index/index(为什么这个路径也可以访问首页下面会讲到)显示如下内容,就说明tp6部署成功。

首页访问配置:

在vscode编辑器中打开tp6文件(前提是你vscode下好了插件并配置好了php环境的路径,用其他编辑器也行),看到默认下好的框架目录如下:初学我们需要重点关注的目录大致只有app、config、public三个

我们先看一下app目录:默认只有一个controller文件,且下面写了一个index.php类。在Index类的index()方法返回的信息就是我们访问默认首页显示的内容。

尝试改一下返回内容:

重新访问:

(因为我tp6已经修改了很多,不方便从头开始演示,于是又下了一个新的thinkphp6,更名为tp6_1,后面都用这个路径演示。)

说到这里就不得不说一下,为什么测试的路径两个www.cool.xiongmm.cn/tp6_1/public或者www.cool.xiongmm.cn/tp6_1/public/index.php/index/index都可以访问,而且路径中没有包含controller目录:

说一下首页访问路径:

1、访问www.cool.xiongmm.cn/tp6_1/public路由,会自动调用tp6_1框架中默认应用的默认控制器(index.php)中的方法(index class中的index()方法)。所以你如果想修改默认的首页,不妨去修改这些默认设置。

2、访问http://域名/最外层文件名/public目录/过滤文件index.php/控制器名(控制器和类名一样)/方法名/方法参数名/参数值,在路径中 index.php 是必须经过的文件,这一路由有点复杂,但是他就是这样设置的,愣是想改的话也可以,不过我还没试过。。 如下示例,我们用此路径访问index控制器中的hello,并传入参数:

怎么回事呢?看不出来是哪里出错了,路径是没错的,下面我们开启debug模式来看看:
开启debug调试:

找到app同级目录文件.example.env,更名为.env,另外在文件中要加上一句:APP_DEBUG = true,保存。

(讲两点: 第一点是.env文件算是可有可无,其他配置文件首先会去尝试寻找.env文件的配置,并引入,找不到就用自己的配置信息。包括数据库配置database.php文件中,也会去寻找.env文件里面的配置信息。后面会慢慢学习到;另外一点是开启debug模式后,在后端向前端返回参数信息的时候,后面除了返回自己的 参数字符串信息 还会跟一大串的html代码,那些都是开启debug模式的自带的显示调试的信息,挺烦人的,也不知道咋办,关了吧,没调试,难排错,不关吧,获取个参数还得搞字符串分割,觉得烦可以改成app_dubug = false)

重新输入url访问:会跳出来调试信息,很直观的,告诉我们可能是路由设置的问题。

解决办法:在config目录下找到第一个app.php文件打开,将with_route的值改为false即可。

再次访问:它又可以了

此时,你在controller目录下面尝试着创建其他的类也是可以访问的,示例如下:

controller下创建user.php,并编写同名的类。里面写一个love方法,看一下请求是否可以成功:

访问一下:http://localhost/tp6_1/public/index.php/user/love

出现上面这种情况是因为我们没有加入命名空间,命名空间是为了声明这是一个控制器,应该是不能少的,毕竟thinkphp框架是采用MVC模式,model和view可以没有,控制器没有那还是框架嘛。。。

再访问一下:

在之前的3.几版本中,类名类文件名开头都必须严格大写,这里却不用。但是为了统一,还是尽量类文件类名首字母都大写。
多应用开发:

前面一直强调默认应用,默认控制器,默认调用方法。那么控制器和方法都可以有多个,为什么应用还有默认之说,这不才一个项目吗?难道项目还可以有多个吗?答案是肯定的。

多应用与单应用的理解:

多应用:在app下还可以同时创建多个应用,这些应用相当于大项目中包含的是多个小项目。

单应用:实际上就是大项目只提供一种服务,可以理解成我们平常认为的一个peoject一个项目,刚下载好的thinkphp项目进入之后使用的单应用开发。

为什么要弄个多应用开发呢:

在一个手机app软件中,提供的服务并非单一,想要开发这样的app,可以分别在不同的服务器,不同的项目中去开发。但是这样有一点,因为各应用之间独立性高太高,若是应用之间相互要交互传递信息,不在一个服务器可能涉及跨域,哪怕是在同一服务器下的不同项目之间开发或者交互也有很多不便之处。我想这大概是设计多应用开发的初衷吧,姑且先这样理解。

默认下载好的是单应用开发,就相当于tomcat下面只放了一个java的web项目,此时,你直接在app目录下面控制器里写类和方法即可。而要想体验多应用,则需要进行另外的配置。其实我们在刚开始学的时候没什么必要学这个,不出意外的话我们大都只有一个应用。但是为了以后能深入学习,还是要了解一下的。

如果需要开发多个app,分四步走:
1、新建应用目录

在app目录下建立自己的应用目录(因为是多应用开发,可以创建多个,名字自取),然后把原本的controller目录删掉!或者移到自己创建的应用目录下面,反正不能留,这个很重要,不然会报错说找不到控制器。
2、多应用配置的扩展安装

想要使用多应用是要开启多应用的,先查看有无自动开启多应用的配置项,打开config——app.php文件,刚开始我这里是没有’auto_multi_app’ => true 这项配置的,这个配置是开启多应用开发关键。

要先去安装 多应用的扩展。添加tp6的扩展 ,使用composer工具即可,在tp6目录下进入cmd命令行执行下列命令;

composer require topthink/think-multi-app

扩展安装成功之后,把配置项写入并保存: ‘auto_multi_app’ => true, (逗号不能忘了)

3、修改命名空间

在控制器类中,命名空间要改成 : app/yourappname/crotroller,且url访问路径在过滤文件index.php后面要加入自己的应用名!!!!

示例:

然后就可以进行多应用同时开发了。
4、默认访问应用设置:

整个大项目可包含有多个应用,一旦应用多了,难免纠结哪个应用来处理首页请求。默认访问项目的应用是Index,此时若是看index不顺眼可把他删了(不删也可)。然后修改默认应用为其他的应用。

找到config下面的app.php文件,默认的访问应用是index,我改成了shopapp。

然后把controller目录删了,app下创建一个shopapp文件(同时我在app下也创建了另一个应用shopapp2来展示多应用),然后在shopapp文件下创建controller文件(controller不能少,它告诉框架找控制器应到这儿来),controller下创建index.php文件,index.php中编写index类(index类是本应用默认访问的控制器),并写一个方法index()(默认访问方法)。此时,这个应用的默认访问路径就畅通了,如下图:

保存,访问一下:

初试配置先讲这些。

Thinkphp6快速入门一相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

  7. BIML 101 - ETL数据清洗 系列 - BIML 快速入门教程 - 序

    BIML 101 - BIML 快速入门教程 做大数据的项目,最花时间的就是数据清洗. 没有一个相对可靠的数据,数据分析就是无木之舟,无水之源. 如果你已经进了ETL这个坑,而且预算有限,并且有大量的 ...

  8. python scrapy菜鸟教程_scrapy学习笔记(一)快速入门

    安装Scrapy Scrapy是一个高级的Python爬虫框架,它不仅包含了爬虫的特性,还可以方便的将爬虫数据保存到csv.json等文件中. 首先我们安装Scrapy. pip install sc ...

  9. OpenStack快速入门

    OpenStack云计算快速入门(1) 该教程基于Ubuntu12.04版,它将帮助读者建立起一份OpenStack最小化安装.我是五岳之巅,翻译中多采用意译法,所以个别词与原版有出入,请大家谅解.我 ...

  10. Expression Blend实例中文教程(2) - 界面快速入门

    上一篇主要介绍Expression系列产品,另外概述了Blend的强大功能,本篇将用Blend 3创建一个新Silverlight项目,通过创建的过程,对Blend进行快速入门学习. 在开始使用Ble ...

最新文章

  1. list修改元素的值_Python 到底是值传递还是引用传递
  2. cas协议,以及tomcat搭建cas服务器
  3. 关于玻璃体捐献的想法
  4. IntelliJ IDEA搭建一个web项目含配置tomcat
  5. 如何查看jsplumb.js的API文档(YUIdoc的基本使用)#华为云·寻找黑马程序员#
  6. Javascript刷新当前页
  7. textarea 字体限制,超出部分不显示并及时显示还剩字体个数
  8. 自定义action消息
  9. 视频教程-Protel99se电路设计速成-智能硬件
  10. html中if判断鼠标,怎样在网页里面检测鼠标
  11. FullScreen
  12. 网页原型设计工具设计_网页设计工具从下往下
  13. C++根据三个点坐标计算夹角
  14. Visual Studio.net 2003 安装和卸载的教训(包括软件下载地址及安装方法)
  15. 30天自制操作系统第一天
  16. PG第五章-体系结构
  17. 微信小程序10-微搭模板
  18. Gradle依赖本地aar包
  19. gre计算机考试科目,gre的考试内容和科目
  20. Edraw Max(亿图图示)新手福音:教你思维导图的简单画法! 1

热门文章

  1. 微星GS安装Ubuntu系统
  2. 打开微信键盘自动弹出_微信一打开就弹出键盘 微信打字键盘怎么恢复
  3. 电脑键盘快捷键使用大全
  4. android apr分析,APR分析-内存篇
  5. python图像锐化_(python 图像锐化教程)C 实现bmp图像锐化后,锐化的效果很差,求大神帮忙啊...
  6. 2019年java全栈工程师学习大全
  7. android 手机内存清理,安卓手机内存如何清理 安卓手机内存清理方法【介绍】
  8. 左倾红黑树(Left-Leaning Red-Black Trees:LLRBT)解析
  9. 微软和美国航空航天局(NASA)强强联手,推出Python免费课程
  10. 全球及中国石油市场十四五发展走势及竞争格局动态分析报告2021年版