新手在學習開發的過程中,往往會犯**數據流不清晰從而導致亂開發一通**的錯誤。無論使用什么語言、什么框架,在開發完成某項功能時,都需要把數據流弄的清清楚楚、明明白白。
本章我們的目標是將數據表中的數據使用ThinkPHP展現出來,那么在此過程中數據大體應該怎么傳輸,我們當前的**知識盲點**又有哪些呢?
## 數據流
我們使用瀏覽器發起數據請求、xampp中的apache來響應請求并將請求信息轉發給ThinkPHP框架、ThinkPHP框架最終完成:連接數據庫、查詢數據表、將數據表中的內容拼接為瀏覽器可以處理的HTML代碼幾個核心的過程。

該圖描述瀏覽器發起請求開始到接收到html代碼為止的數據流向過程,在該圖的支持下,我們能夠更清晰的了解在整個請求過程中都將發生什么。在此基礎上,我們可以首先排除那些由軟件自動實現對我們而言是完全透明的功能,比如瀏覽器是如何將html代碼渲染為頁面的;接著再排除那我們不透明但我們已經掌握的知識點,比如apache在接收到請求路徑為`tp6/public/index.php`會將其轉發給相對于其文檔根目錄`htdocs`下的`tp/public/index.php`文件;最后再將那些對于來講不透明,需要我們實現,同時尚未掌握如何識現的功能。
>[info] 透明的東西是看不到的,我們在此僅關心那些不透明我們能看的到的東西。每次學習我們都應該有個學習邊界,必須把握好學習的寬度及深度。不能說見什么就要深入學什么,這樣的結果往往是看似學到了很多東西,實際上卻什么也沒有學到。所以至于透明的東西是如何實現的,答案有且僅有一個:自動。
## 知識盲點
梳理數據流便能找到最終的**知識盲點**
1. 當我們在瀏覽器輸入相應的網址時,chrome將自動發起請求,此過程由瀏覽器自主完成,是透明的。
2. apache接收到請求后,由于請求路徑為`tp6/public/index.php`,所以apache將其轉發給tp框架下的入口文件index.php。
3. 0 連接數據庫 **(知識盲點)**
3. 1 查詢teacher數據表 **(知識盲點)**
4. 查詢成功mysql將返回數據表中的數據,此過程由mysql自主完成,是透明的。
5. 將接收到的teacher表中的數據轉換HTML **(知識盲點)**
6. 返回拼接好的帶有兩個teacher信息的html table代碼,由框架自主完成,是透明的。
7. 將接收到的html代碼通過網絡返回給請求者,由apache自主完成,是透明的。
8. 將html代碼渲染為頁面,由瀏覽器自主完成,是透明的。
所以最終梳理的知識盲點有3個:
1. tp框架如何連接數據庫
2. 成功連接數據庫后如何查詢teacher數據表
3. 如何將接收到的teacher表中的數據轉換為html
OK,讓我們帶著明確的目標走向下一小節吧。
>[success] TIPS:學習應該控制好邊界,不應該過度關心透明的東西。
- 序言
- 第一章 Hello World
- 1.1 運行環境
- 1.1.1 windows
- 1.1.2 macos
- 1.1.3 ubuntu
- 1.2 Hello ThinkPHP
- 1.2.1 windows
- 1.2.2 macos
- 1.2.3 ubuntu
- 2.3 Hello World
- 第二章 教師管理
- 2.1 數據庫初始化
- 2.2 CRUD之 R 讀取數據
- 1 數據流
- 2.2.2 連接數據庫
- 2.2.3 直接讀取數據之DB
- 2.2.4 間接讀取數據之模型
- 2.2.5 顯示數據之原始文案
- 2.2.6 單引號與雙引號
- 2.2.7 顯示數據之視圖
- 2.2.8 模板語法
- 2.2.9 使用bootstrap美化界面
- 2.3 CRUD之 C 增加數據
- 2.3.1 MCA默認路由