Laravel被稱為“全棧”式架構,因為它能夠處理從網路服務到資料庫管理、HTML產生的一切事情,垂直整合的web開發環境給開發人員提供了更好的體驗。
開發人員可以通過命令列工具,產生和管理Laravel項目環境。Laravel附帶了一個名為Artisan的優秀的命令列工具,它提供了一些開發過程中有用的命令用,可以用來產生架構代碼和資料庫管理。它是基於強大的Symfony Console 組件開發的。
Laravel的目標是給開發人員創造一個愉快的開發過程,並且不犧牲應用的功能性。快樂的開發人員才能創造最棒的代碼!為了這個目的,我們博取眾架構之長處集中到Laravel中,這些架構甚至是基於Ruby on Rails、ASP.NET MVC、和Sinatra等開發語言或工具的。
Laravel是易於理解並且強大的,它提供了強大的工具用以開發大型、健壯的應用。傑出的IoC、資料庫遷移工具和緊密整合的單元測試支援,這些工具賦予你構建任何應用的能力。
目錄結構
這是所有laravel項目具有基本上相同的目錄結構,其中的每個檔案都具有指定的地方。通過對目錄結構的約定,確保你是按照“laravel方式”來工作。
正如你看到的,laravel項目下面有4個檔案夾:app、bootstrap、public、vendor,這4個檔案夾下面又有很多個子檔案夾,當你第一次看到這麼豐富的檔案夾內容時,是不是覺得很有壓力?沒關係,我們會逐一的來瞭解不同的檔案夾。
app 包含了網站的controllers(控制器),models(模型),views(視圖)和assets(資源)。這些是網站啟動並執行主要代碼,你會將你大部分的時間花在這個目錄裡。
bootstrap 用來存放系統啟動時需要的檔案,這些檔案會被如index.php這樣的檔案調用。
bootstrap 用來存放系統啟動時需要的檔案,這些檔案會被如index.php這樣的檔案調用。
public 這個檔案夾是唯一外界可以看到的web伺服器的目錄。它含有laravel架構核心的引導檔案index.php,這個目錄也可用來存放任何可以公開的靜態資源,如css,Javascript,images等
vender
app目錄
模型-視圖-控制器(MVC)
讓我們更深一步瞭解如何建立laravel應用。你可能已經注意到,app目錄下面有三子目錄:models,views,controllers。這是表明了laravel是model-view-controller(MVC)架構模式,它將“商務邏輯”與圖形化使用者介面相關的輸入和顯示邏輯(GUI)分離。在laravel Web應用中,商務邏輯通常由資料模型(如使用者,部落格文章)組成,GUI則只是一個瀏覽器中的頁面。MVC設計模式在Web的開發領域中非常受歡迎。MVC模式的三個要素:
模型(model)
視圖(view)
控制器(controller)
Laravel的響應流程
一個典型的laravel應用程式由上面提到的MVC組成
當訪問一個laravel應用程式時,瀏覽器發送一個請求,由Web伺服器接收並傳遞到laravel的路由引擎。該laravel路由器接收到請求後,根據配置重新導向到相應的控制器類的方法。
然後由控制器類接管。在某些情況下,控制器將立即渲染一個視圖,這是一個模板,將被轉換成HTML並且發送回瀏覽器。更普遍的動態網站,控制器與模型進行互動,與資料庫進行通訊。調用模型後,控制器呈現最終視圖(HTML、CSS和映像)並返回完整的web頁面到使用者的瀏覽器。
Laravel提倡模型、視圖和控制器,應保持完全獨立的儲存單獨的檔案在不同的目錄。這就是laravel的目錄結構發揮作用的地方。
像MVC這樣的設計模式的產生,就是為了讓開發人員的工作更加輕鬆。這就是Laravel比那些不用任何模式的PHP厲害的地方。如果這種討論你現在感覺很抽象,不用擔心!當你開始用Laravel工作,你都不會意識到你是在一種設計模式中工作。過一段時間後,就會變得自然了。