日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

赵童鞋带你入门PHP(六) ThinkPHP框架入门

發布時間:2024/9/21 php 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 赵童鞋带你入门PHP(六) ThinkPHP框架入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

閱讀時長:10分鐘

技術預備:PHP基礎語法

本章我們主要講解ThinkPHP的基礎概況和Web服務端開發中常用的MVC結構。

一、入口文件

還記得我們上一章是怎么輸出Helloworld的嗎?

沒錯,就是在瀏覽器中輸入了 http://localhost/tp5_demo/public/

這個URL表示了訪問htdocs文件夾下的/tp5_demo/public/index.php文件,這是為什么呢,我們下面來一步步分解。

當我們輸入 http://localhost 的時候,Apache就會訪問其httpd.conf文件下指定的DocumentRoot路徑,在趙童鞋這里就是E:/xampp7/htdocs。

而在后面拼接/tp5_demo/public的意思就是訪問DocumentRoot路徑下的/tp5_demo/public文件夾。

那么最終為什么會定位到index.php文件呢?這是因為httpd.conf文件里有另一個屬性定義DirectoryIndex,這個屬性中就定義了index.php、index.html等文件作為入口文件。(啥?你說為啥沒圖?自己翻你們的httpd.conf文件去)

而在ThinkPHP中,如果沒有指定訪問地址,默認就會路由到index模塊下的Index控制器中的index()方法。

也就是說,輸入

http://localhost/tp5_demo/public/

http://localhost/tp5_demo/public/index/index/index

是同樣的效果。

二、控制器(Controller)

在MVC架構中,控制器一般只負責如下功能:

  • 參數校驗
  • 調用服務
  • 調用模型
  • 輸出結果

在ThinkPHP框架中建立控制器只需要在對應的模塊中的controller模塊中新建一個類。

如上圖則表示在index模塊中建立了Index控制器。

而Index控制器下的index()方法即代表一個Action,在API開發中也就是一個接口,可以通過配置框架的路由URL進行綁定。

需要注意的是,Action中其實不應該出現太多的邏輯操作,Action應該只是作為模型層(Model)和視圖層(View)的一個調用者,實際的邏輯操作應該是放到模型層去進行處理,更復雜的邏輯應該放在服務層(Service)去進行處理,這種分層的思想就是所謂的面向切面編程(AOP)。

這樣做的好處就是當某個通用操作(如用戶登錄、計算活動金額)發生變化的時候,只需要在模型中修改代碼,并不會影響到調用模型的控制器代碼。

而如果把邏輯都放在控制器中,那么一旦需要修改代碼的時候,就要把所有關聯到的控制器代碼全部修改一遍。

趙童鞋就見過把所有邏輯放在控制器,完全不用模型的項目,寫的時候不需要考慮分層,不需要考慮迭代,爽得很。

但是當需求發生變更的時候,維護的程序員就只想XXOO了。。

三、模型(Model)

模型定義一般為一個模型類對應一個數據表。

服務端開發中大部分的邏輯操作其實就是在Select/Create/Update/Delete各種數據表。

一些簡單的邏輯操作,如:獲取ID為75的文章數據。應該放在模型中封裝為一個方法,在控制器層去進行調用。

ThinkPHP框架為模型提供了許多便捷功能,如:隱藏字段、字段修改器、分頁查詢、定義關聯關系。

我們會在后面再來詳細介紹模型與這些功能。

四、視圖(View)

視圖層就是輸出對應的HTML代碼。

在框架中可以使用模板引擎(如:ThinkPHP自帶引擎、Smarty引擎)來進行變量替換。

但是現在服務端比較流行的都是API開發,通過API傳遞數據與前端進行交互,比較少使用視圖來進行頁面渲染。

五、路由(Route)

許多的PHP框架中都具有路由這個功能,甚至在Vue、React之類的前端框架中也加入了路由這個概念。

路由其實就是我們的訪問URL和控制器中的Action做了一個映射,如上面提到的:

http://localhost/tp5_demo/public/index/index/index

就是訪問index模塊中的Index控制器下的index()方法。

我們可以來嘗試一下,在Index控制器中加入hello()方法:

訪問URL: http://localhost/tp5_demo/public/index/index/hello

可以看到,成功的輸出了

“Here is hello action”。

這個URL的實際意思就是訪問index模塊下的Index控制器中的hello方法。

路由還有許多強大的功能,我們將會在后續的章節中進行介紹。

六、總結

本章我們介紹了現在流行的MVC三大件的基本用途,以及路由的概念。

童鞋們應該大概掌握了一個后端接口的工作流程,也就是:路由->控制器->模型(->視圖)。

下一章節開始我們就會詳細的介紹各組件的實際用法。

附錄一、隱藏index.php文件

不知道童鞋們有沒有發現本篇文章中有個bug呢?

沒錯,我們在入口文件時說過,當訪問 http://localhost/tp5_demo/public/

Apache會自動訪問到public目錄下的index.php文件。

但是為什么訪問 http://localhost/tp5_demo/public/index/index/hello

不需要在URL中帶上這個文件呢?

我們可以在public目錄下找到一個.htaccess文件,就是它幫我們隱藏掉了index.php。

現在把其中的代碼屏蔽掉,并重啟Apache。

再次訪問 http://localhost/tp5_demo/public/index/index/index。

瀏覽器會返回404。

而如果我們訪問 http://localhost/tp5_demo/public/index.php/index/index/index。

頁面成功輸出了Helloworld。

附錄二、虛擬域名

知道了入口文件規則之后,童鞋們有沒有覺得每次訪問接口,需要輸入項目路徑很麻煩呢?我們接下來配置一個本地虛擬域名。

首先編輯Apache目錄下的httpd-vhosts.conf文件,輸入以下代碼:

然后編輯我們本機的hosts文件,Windows10下的路徑為:

C:/Windows/System32/drivers/etc/hosts

輸入以下代碼:

127.0.0.1 tp5.com

重啟一下我們xampp的Apache,然后在瀏覽器中輸入 tp5.com ,如果能看到依舊輸出Helloworld,那就代表配置成功了。(配置出現問題的童鞋可在公眾號后臺給趙童鞋留言哦)

配置完畢后,我們以后只需要訪問tp5.com這個地址,就能直接訪問綁定好的項目路徑。

----- End -----

更多好文

請掃描下面二維碼

歡迎關注~

總結

以上是生活随笔為你收集整理的赵童鞋带你入门PHP(六) ThinkPHP框架入门的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。