為什么學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工具:除了自己的安裝目錄以及選擇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()(默認訪問方法)。此時,這個應用的默認訪問路徑就暢通了,如下圖:
保存,訪問一下:
初試配置先講這些。