當前位置:吉日网官网 - 紀念幣收藏 - Docker PHP簡介(3)

Docker PHP簡介(3)

在本教程的剩余部分,我們將完成壹個基於ThinkPHP框架的天氣查詢應用程序。我們使用天氣查詢-API文檔-開發指南-Web服務API |高德地圖API的接口來實現我們的功能。將查詢數據緩存在MySql中,這樣就不用每次都頻繁請求第三方接口(請求次數有限制)。

選擇高科技開放平臺——天氣查詢API主要是因為免費。當然,也可以使用其他第三方天氣查詢界面,看個人喜好。

這個應用是壹個非常簡單的REST API應用,主要實現了兩個接口。

在做應用程序編碼之前,我們先用Docker安裝運行ThinkPHP。

ThinkPHP是壹個免費開源、快速簡單的面向對象的輕量級PHP開發框架,為敏捷的WEB應用開發和簡化的企業應用開發而生。ThinkPHP從誕生之日起就壹直秉承簡單實用的設計原則,在保持卓越性能和最少代碼的同時更加註重易用性。遵循Apache2開源許可協議,意味著妳可以免費使用ThinkPHP,甚至允許妳基於ThinkPHP的應用是開源的或者是商業產品被發布/銷售。

這也是我選擇它作為本課程教學框架的原因。我不希望妳因為壹個框架而放棄,但我也不想從頭開始構建壹切,因為本教程的重點是Docker,而不是我們的PHP應用。

用Docker創建ThinkPHP應用實際上比本地配置PHP環境需要的操作更少。而且因為我們還需要使用Composer,感謝Docker,我們甚至不需要在主機上安裝它。

首先,打開您的終端並創建壹個項目目錄。

並輸入目錄。

現在用【官方Composer Docker鏡像】(/_/composer/)安裝ThinkPHP。

如果檢查weather-app/目錄,會看到ThinkPHP 6的項目目錄,如下圖所示:

我們的docker run命令類似於第2章中的命令,但是我們使用了不同的映像。我們沒有使用運行hello.php腳本的PHP映像,而是使用了壹個Composer映像。讓我們看看發生了什麽變化。

創建項目後,我們需要添加幾個路由URL和控制器文件。讓我們打開weather-app目錄中的應用程序/控制器,然後用以下內容創建壹個新的Weather.php文件:

然後打開天氣應用目錄中的應用/路線,將以下內容添加到app.php文件中:

現在我們可以在Docker容器中運行我們的應用程序,只是為了驗證我們的應用程序是否正常工作,因為我們只添加了兩個路由URL。打開命令行並運行。

現在,打開poser create-project的兩個命令...在瀏覽器中是不同的。原因是這次我們想獲得包含Apache的PHP的最新版本,這樣就可以為我們的Web應用程序提供服務。讓我們進壹步了解新的命令部分。

妳可以通過向終端發送壹個“中斷”信號來停止和退出終端。在windows上,這可以通過按Ctrl和c來完成。

運行新web應用程序的另壹個選項是以“分離”模式運行容器。這意味著您在終端看不到容器的輸出。這可以通過在前面的命令中添加-d標誌來實現。

在分離模式下啟動容器後,您的終端將顯示新容器的完整ID——類似於a 70d 25 C2 a 7 cede 673 F8 ab...如果要停止容器,可以使用docker stop命令,並用容器ID告訴docker。例如

因為輸入整個ID很麻煩,Docker允許妳只輸入前三個或者更多的字符,如果妳願意的話。

最後,我建議給妳的容器命名。我們將在本書後面的許多示例中這樣做,因為通過名稱記住容器比通過隨機分配的ID容易得多,而且ID是隨機的,所以每次運行容器的新版本,它都會獲得壹個新的ID。只要還沒有同名的容器,就可以多次發出該名稱。為了命名新的應用程序容器,我們可以用傳入的名稱標誌重新創建它。

使用docker run命令時有許多選項可用,因此您可能希望更詳細地閱讀文檔。當我們開發其余的應用程序時,我們將涉及其中的壹些選項。

現在要介紹的是高德的天氣SDK。在使用這個SDK之前,妳需要閱讀高德開放平臺的技術文檔——天氣查詢。在添加SDK之前,我們必須首先確保所有現有的容器都已停止。

該命令將列出所有正在運行的容器。您還可以通過添加-a標誌來查看停止的容器。

如果有任何容器正在運行,在我們繼續之前使用docker stop來阻止它們。

此命令將在您的項目中安裝新的軟件包。在這個過程中,您應該會在終端中看到類似這樣的輸出。

現在SDK已經安裝好了,可以使用了。

我們將使用新添加的高德天氣SDK來改進我們的業務邏輯,並在控制器目錄中打開Weather.php來添加以下內容:

我們做了壹些更新——主要是通過引入天氣API來初始化天氣類。

我們的應用程序已經初步完成了向API傳遞壹個真實的位置ID並返回壹些數據。首先,使用這個高科技的位置查詢來查找位置ID。我使用上海的ID進行測試。310000當然可以直接寄到上海。好,讓我們再次運行Docker容器。

並在您的瀏覽器中訪問正在運行的應用程序,地址為http://localhost:38000/weather-app/public/index . PHP/weather/310000。您應該能夠看到如下所示的JSON數據。

妳的Docker PHP應用現在是從外部數據源返回真實數據,用Apache提供服務,但是妳可能會註意到它的速度並不快(我的頁面加載時間是1.92秒!)。

高德天氣API是壹項免費服務,其他國家可能無法使用。為了解決這個問題,我們會將查詢數據保存在自己的MySQL數據庫中,以便下次訪問時快速響應。這將大大提高性能。在下壹章中,我們將學習如何用Docker將MySql與PHP應用程序結合起來。

  • 上一篇:柯林斯收藏
  • 下一篇:如何培養農村孩子的課外閱讀興趣
  • copyright 2024吉日网官网