流明介绍
Lumen是一個由Laravel框架的作者Taylor Otwell開發的全新PHP微框架的品牌。 不過,請不要強調-流明并不能取代Laravel。 實際上,Lumen的想法是,它可以補充您現有或將來的Laravel應用程序。
Taylor Otwell在開發Lumen時考慮了一些非常特定的目的,即微服務和API。 簡而言之,微服務是一個較小的,解耦的過程,可與較大的應用程序(例如,我們的Laravel應用程序)通信。
在本文中,我想介紹流明的不同之處,何時使用流明以及如何使用流明。 我還將說明如何使用Lumen應用程序并將其輕松遷移到全棧Laravel應用程序。 因為Lumen與Laravel幾乎相同,所以不會有很多代碼。 讓我們開始吧。
那么有什么新消息?
這很可能是你們中許多人會問的第一個問題。 實際上,除了膠水以外,Lumen并不是真正的全部。 Lumen仍然使用構成Laravel框架的大多數Illuminate組件(僅缺少幾個)。 將其視為精簡的Laravel安裝。
其目標是最大程度地提高性能,并獲得這種性能提升,但已經做了幾處更改。 其中最重要的是:
這里有一些權衡。 FastRoute是一個非常快速的實現,但是它不像Symfony路由器那樣具有豐富的功能。 如果要使用子域路由,則必須堅持使用使用Symfony路由器的Laravel安裝。
另一個值得一提的折衷是,為了更好地控制某些組件的配置,您需要在vendor/laravel/lumen-framework目錄中修改配置文件。 大部分配置都可以通過.env文件完成,但某些配置較少的事情則不能直接配置。
我現在應該切換到流明嗎?
這里的答案將取決于,但可能并非如此。 如果您正在開發或已經在Laravel(4或5)上開發了應用程序,那么您可能不需要在此刻就切換到Lumen。 盡管Lumen能夠開發功能完善的Web應用程序,但它更適合于較小的,解耦的服務和API。
那么我什么時候可以使用它?
我無法告訴您何時可以使用和不能使用可用的框架。 但是,我將對何時考慮在下一個項目中使用流明提出一些建議。
假設您正在構建大型網上商店應用程序。 因此,您可以繼續安裝Laravel并開始在整體應用程序上工作。 現在,這種方法沒有任何問題,您可能會發現它對您來說很好用。 如果是這樣,繼續。 如果您發現您對復雜性不知所措,或者事情似乎有點失控,那么您可能希望將其分解為一些更小,更易于管理的部分。
您將使用Lumen為每個解耦的服務創建單獨的應用程序。 對于我們的商店,我們可能會將帳單,電子郵件通知,運輸和跟蹤拆分為單獨的應用程序。 這些應用程序中的每個應用程序都是一個獨立的Lumen安裝程序,每個應用程序僅執行特定的任務。
為了使我們的主應用程序能夠與解耦的服務進行通信,我們將使用隊列和Amazon SQS之類的服務。 我們可以使用隊列輕松地將作業排隊,每個服務將偵聽其特定的作業并在排隊時對其進行處理。 這種方法的好處在于,每個服務都可以彼此獨立地擴展和部署。
您還可以使用Lumen構建API,您的主應用程序也可以在HTTP客戶端(例如Guzzle)的幫助下使用該API。 這種解耦使您可以擴展和優化應用程序的業務方面,而不會干擾其余部分。
好的,我該如何使用?
到目前為止,您應該對使用Lumen是否適合您正確的方法有了個好主意。 安裝Lumen就像安裝Laravel一樣簡單:一個簡單的composer create-project命令,或者您可以安裝lumen命令來創建新項目。 我們將僅使用Composer進行全新安裝。
composer create-project laravel/lumen LumenProject --prefer-distComposer將下拉所有依賴項。 您可以使用Artisan快速提供該應用程序以進行查看,也可以設置虛擬主機或Homestead站點。 無論哪種方式,一旦您找到流明安裝的路徑,您都會看到閃亮的啟動頁面,通知您流明很好。
所有配置都在.env文件中完成,因此您需要重命名.env.example文件或將其內容復制到新文件中。
您需要了解的其余引導程序位于bootstrap/app.php文件中。 如果使用上面提到的.env配置,那么您將要取消注釋Dotenv::load(__DIR__.'/../');注釋Dotenv::load(__DIR__.'/../'); 。 滾動瀏覽此文件,您會看到一些可能要取消注釋的注釋行。 其中包括外觀,Eloquent,一些中間件以及其他服務提供商的注冊。
現在,您已經獲得了全新安裝和配置的Lumen副本,準備構建驚人的東西。
但是等等,我現在需要Laravel!
您可能正在構建Lumen應用程序,并且一切都進行得非常順利,直到有一天,當您意識到自己只需要完整的Laravel框架所提供的東西時,這一命運才得以實現。 不過,請不要強調,因為這是極其輕松的升級。 以下是要遵循的步驟:
這應該是您需要復制的大部分內容,才能將Lumen應用程序遷移到Laravel。 當然,這兩種方法都起作用,因此,如果您意識到不需要全棧框架提供的所有功能,則可以輕松地將Laravel應用程序遷移到Lumen。
結論
總結一下,我只想指出,我主張將Lumen主要用于分離的服務和API,這是它的預期用途。 這并不是說您不能在Lumen上構建整個應用程序,因為可以。 如果您選擇這樣做,那很好。 在石板上刻沒有任何規則來告訴您項目可以使用和不使用的內容。 最終,決定權由您自己決定。 權衡您的選擇,計劃項目,確定所需條件,咨詢團隊,然后做出最終決定。
翻譯自: https://code.tutsplus.com/articles/introduction-to-lumen--cms-23928
總結
- 上一篇: 管理软件软件开发_管理在软件开发中的作用
- 下一篇: 欧洲能源危机日益严重,这个冬天到底会