如何使用和組件來開發(fā)一個PHP應(yīng)用?(一)
2021-11-01
是一個尋找PHP組件的社區(qū),是一個安裝PHP組件的工具。它是 PHP 的依賴管理器。它在命令行上運行。您告訴您需要哪些組件,然后您將下載這些組件并將其自動加載到您的項目中。就這么簡單。
與您密切合作。如果你告訴你要使用/,你會從中獲取/,找到這個組件的倉庫地址,確定使用哪個版本,并找出這個組件的依賴,然后下載/及其依賴在您的項目中。
另外,項目中所有的PHP組件都會自動生成一個符合PSR標準的自動加載器,有效地抽象了依賴管理和自動加載。因此,它是 PHP 社區(qū)最重要的附加工具。毫不夸張地說,我們不得不使用諸如、、和 r 來手動實現(xiàn)自動加載的痛苦日子。
關(guān)于安裝和使用,這里不再贅述,請參考中文網(wǎng)站。
示例項目
下面我們通過一個示例項目來演示如何使用和組件來開發(fā)一個 PHP 應(yīng)用程序。此應(yīng)用程序的作用是掃描 CSV 文件中的 URL 以找出死鏈接。應(yīng)用程序?qū)⑾蛎總€ URL 發(fā)送一個 HTTP 請求。如果返回 如果 HTTP 狀態(tài)碼大于等于 400,則將死鏈接發(fā)送到標準輸出。這是一個命令行應(yīng)用程序。開發(fā)完成后,我們會執(zhí)行這個腳本,傳入csv文件的路徑,在標準輸出中顯示死鏈接列表。
安裝組件
在開始之前,我們先來看看使用現(xiàn)有的 PHP 組件可以解決哪些任務(wù):我們需要一個可以迭代處理 csv 文件數(shù)據(jù)的組件。另外,我們需要向csv文件中的每個URL發(fā)送HTTP請求,所以我們還需要一個可以發(fā)送的。HTTP 請求和檢查 HTTP 響應(yīng)組件。
瀏覽之后,我們發(fā)現(xiàn)了/和/csv兩個組件,前者用于處理HTTP報文,后者用于處理CSV數(shù)據(jù)。下面我們在項目的頂層運行以下命令:
composer require guzzlehttp/guzzle
composer require league/csv
依賴項將安裝在根目錄中。安裝完成后,根目錄下會生成.json和.lock文件:
.lock 文件將列出項目使用的所有 PHP 組件,以及組件的具體版本號。這實際上鎖定了項目,使項目只能使用特定版本的 PHP 組件。這樣做的好處是,無論可用的最新版本如何,都將下載此文件中列出的特定版本。您應(yīng)該將 .lock 文件放入版本控制中,以便團隊成員可以使用與您相同的 PHP 版本。如果本地開發(fā)和服務(wù)端使用相同版本的PHP組件,可以最大限度的減少不同組件版本帶來的bug。
如果你真的想下載最新版本的組件并更新.lock,可以使用命令。
自動加載
接下來我們編寫應(yīng)用代碼,在根目錄下創(chuàng)建一個scan.php文件,然后使用文件頂部創(chuàng)建的自動加載器:
require 'vendor/autoload.php';
創(chuàng)建的自動加載器實際上是一個名為 .php 的文件,該文件保存在目錄中。在下載每個 PHP 組件時,它會檢查每個組件的 .json 文件,以確定如何加載該組件。獲取到這些信息后,就會在本地為這個組件創(chuàng)建一個符合 PSR 標準的自動加載器。這樣我們就可以實例化項目中的任何 PHP 組件,這些組件會根據(jù)需要自動加載。
寫代碼
下面我們正式使用和CSV組件來編寫scan.php代碼:
下面我們在 urls.csv 中添加一些 URL,每行一個php接口開發(fā),其中至少有一個是死鏈接:
然后打開終端,執(zhí)行scan.php腳本:
php scan.php urls.csv
我們傳入了兩個參數(shù),第一個是腳本文件scan.php的路徑,另一個是CSV文件的路徑。輸出如下:
以上內(nèi)容希望對大家有所幫助。推進的過程中總會遇到很多問題和瓶頸。寫太多業(yè)務(wù)代碼沒有方向感。我不知道從哪里開始改進。我整理了這方面的一些資料,包括但不限于:分布式架構(gòu)php接口開發(fā),高擴展性,高性能,高并發(fā),服務(wù)器性能調(diào)優(yōu),TP6,,YII2,,,,,優(yōu)化,腳本,微服務(wù),以及其他需要的知識點進階進階干貨可以免費分享給大家。有需要的可以加入我的官方群。點擊這里。