Hello Laravel! Laravel 入門教程
Hello Laravel! 準備
什么是 Laravel?
Laravel 是一個基于 PHP 的開源 web 應用程序框架,由 Taylor Otwell 創建并于 2011 年首次發布。它遵循 MVC(模型-視圖-控制器)設計模式,旨在幫助開發者構建優雅、簡潔且易于維護的 web 應用程序。
為什么選擇 Laravel?
優雅的語法
Laravel 以其簡潔和易讀的代碼風格著稱,使開發者能夠以最小的代碼編寫出功能強大的應用程序。它的語法簡潔明了,減少了開發者的工作量,并提高了代碼的可讀性和可維護性。
豐富的功能
Laravel 提供了許多開箱即用的功能,如:
- 路由系統:定義應用程序的 URL 路徑和對應的控制器。
- Eloquent ORM:一個強大的 ActiveRecord 實現,用于處理數據庫操作。
- Blade 模板引擎:一個簡單、靈活的模板引擎,用于生成 HTML。
- 中間件:方便處理 HTTP 請求的過濾和修改。
- 任務調度:通過 Cron 作業自動執行任務。
強大的社區支持
Laravel 擁有一個活躍且龐大的社區,豐富的文檔和大量的第三方包和插件,使開發者可以輕松找到所需的資源和解決方案。官方還提供了詳細的文檔和教程,幫助新手快速上手。
安全性
Laravel 在開發過程中考慮到了許多常見的安全問題,如 SQL 注入、跨站請求偽造(CSRF)和跨站腳本攻擊(XSS)。框架內置了各種工具和機制來保護應用程序的安全。
易于擴展
由于 Laravel 的模塊化設計和靈活的架構,開發者可以根據需要輕松擴展和定制框架。無論是添加新功能還是集成第三方服務,Laravel 都提供了方便的接口和工具。
Laravel 的流行程度
Laravel 的流行程度可以通過 GitHub 的 star 數等指標來衡量。截至 2024 年,Laravel 在 GitHub 上擁有超過 74k 個 stars,顯示了其在開發者社區中的廣泛接受度。
為了更好地理解 Laravel 的受歡迎程度,我們可以將其與其他流行的 web 框架進行比較:
其他流行的 Web 框架對比
- Django (Python):Django 是一個高層次的 Python web 框架,專注于快速開發和簡潔的設計。截至 2024 年,Django 在 GitHub 上有約 72k 個 stars。
- Ruby on Rails (Ruby):Ruby on Rails 是一個流行的 Ruby web 框架,強調開發效率和代碼優雅。截至 2024 年,Rails 在 GitHub 上有約 53k 個 stars。
- Spring Boot (Java):Spring Boot 是一個基于 Java 的框架,用于創建獨立的、生產級的 Spring 應用程序。截至 2024 年,Spring Boot 在 GitHub 上有約 69k 個 stars
- Express (Node.js):Express 是一個基于 Node.js 的快速、簡潔的 web 框架,適用于構建單頁、多頁和混合 web 應用程序。截至 2024 年,Express 在 GitHub 上有約 62k 個 stars。
通過與這些流行框架的對比,可以看出 Laravel 在 web 開發社區中擁有很高的知名度和廣泛的使用基礎。
環境準備
以下步驟均在 Windows10 下完成
首先在學習 Laravel 之前,需要準備必要的環境,這次入門教程以最新的 Laravel 版本作為開發基礎,也就是 Laravel11,它所需要的 PHP 版本環境最低要求是 >=8.2, 不光是 PHP,Laravel 作為全??蚣苓€需要 Node 環境。本次課程還需要用 Nginx 和 Mysql 等環境。所以為了簡化入門教程的帶來的環境困惱,在這里我們選擇了集成這些軟件包的開發軟件,當然如果你是使用其他的軟件,例如 wamp phpstudy 之類的也是可以的。
下載 Laragon
選擇下面的版本安裝

下載成功之后,按照提示直接點擊下一步下一步安裝即可。再 Laraegon 安裝成功之后,你會看到軟件界面
注意一定要記住 Laragon 安裝的目錄
看到下面的界面,就算是安裝成功了

設置工作目錄
這一步非常重要,一定要設置好,因為 Laragon 會幫根據文件目錄名稱自動創建虛擬主機,就省的自己去設置虛擬域名之類的了。
點擊右上角的設置

然后會看到下面的界面,根據自己實際的項目目錄設置對應的值

如圖,本人所有的項目都設置在 C 盤的 project 目錄,所以在之后安裝 Laravel 項目的時候,我都會在 c:\project 目錄下安裝
添加 PHP 版本
由于需要使用 PHP >= 8.2 版本,所以這里需要安裝添加一個 8.2 版本,Laragon 添加 PHP 版本非常簡單??梢缘?PHP 軟件包下載頁面
找到對應版本,這里選擇線程安全版本 VS16 x64 Thread Safe (2024-May-08 07:21:58)

點擊 zip 下載 ?
下載之后,找到 Laragon 的安裝目錄,找到目錄下的 bin\php 目錄,然后復制上面下載好的 PHP zip 包到該目錄

直接解壓到當前目錄即可,解壓完成之后呢,找到 windows 右下角的圖標,如下圖所示

右擊 Laragon 的圖標,然后選擇 PHP,如圖,選擇對應的 PHP 版本即可

然后再 Laragon 軟件,點擊啟動 nginx 和 mysql,那么項目所需要的環境就已經安裝好了

設置環境變量
找到編輯環境變量配置,打開它

點擊環境變量

找到 path 變量,然后點擊它

然后再點擊新建,在復制你自己本地的 PHP 版本解壓后的目錄地址 C:\software\laragon\bin\php\php-8.2.15-Win32-vs16-x64(這是本人的本機目錄) 粘貼到新建的變量中

打開 cmd 運行 php -v, 你會看到下面的輸出就代表成功了

這里我建議不要使用 windows 自帶的命令行,使用 Laragon 帶的 cmder 更好。
因為支持
Linux相關命令,用起來更順手。而且可以隨意設置 PHP 版本,不需要設置環境變量(需要重新打開一個新的 cmder)。
打開 Laragon 軟件界面,如下圖,點擊它

然后看到軟件界面如下

Composer 安裝
第二步,安裝 Composer。composer 安裝比較簡單,只需要到下載的頁面即可
點擊下面的所指下載安裝

下載完成之后,雙擊 exe,點擊下一步下一步即可完成安裝即可,安裝完成之后呢,打開 cmder,輸入下面的命令
composer -v

安裝成功之后,還需要設置鏡像,目前據我所知,華為鏡像更新的比較及時,可以復制下面的命令的設置鏡像
composer config -g repo.packagist composer https://repo.huaweicloud.com/repository/php/
設置好鏡像之后,來安裝初始化 Laravel 的初始化項目,首先我們安裝 Laravel 項目安裝器,使用下面的命令
composer global require laravel/installer
執行命令之后,等待安裝完成即可。安裝完成之后,使用下面的命令
Laravel -v
會有如圖輸出

初始化 Laravel 項目
Laravel 安裝器安裝完成之后,我們就可以來安裝 Laravel 項目了。還記得上面說的設置工作目錄嗎?現在我要在 c:\project 目錄下創建新項目。所以要求你也需要在你自己實際的設置的工作目錄下,使用下面的命令來創建項目
laravel new lara-study
按照如圖所示,選擇對應的選項進行安裝。這里我們盡量簡單的來,不使用任何包裝的包,盡量以原生框架開發

然后中途會有提示使用什么數據庫驅動,如下圖,教程使用 Mysql,圖片安裝上選擇了 yes,出現了報錯,這個錯誤可以忽略。為了避免誤解,請各位在安裝時候輸入
no

輸入完成之后,繼續等待它安裝完成就行了。
完成之后,記得重啟 Laragon,在自動創建虛擬主機,如下圖,點擊停止之后,再點擊啟動將會自動創建虛擬機

Laragon 會創建一個以目錄名稱命名的lara-study.test虛擬域名,直接直接通過它訪問項目。如果你出現如下圖的報錯,請不要擔心,只是數據沒有配置而已,等會下面來配置數據庫信息

配置數據庫
本教程使用的 Mysql 數據庫作為驅動,所以數據庫配置 Mysql 即可。找到右下角的 Laragon 軟件,如圖所示,修改 mysql 的 root 密碼。
更換的時候必須停止 Mysql 服務,軟件會有提示

設置本地的 root 密碼,設置完成之后再啟動就可以了。

下面使用你常用的編輯器打開項目,我這里使用的是 phpstorm IDE 打開。找到 .env 文件,如下所示

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=lara_study // 數據庫名稱
DB_USERNAME=root
DB_PASSWORD= // 配置你剛才設置 root 密碼
配置完成之后,先不著急訪問項目,我們先執行下一個命令,來創建數據庫,因為現在鏈接了數據庫,但沒有 database 還沒有設置,所以依然是報錯的狀態。在項目根目錄,執行下面的命令
php artisan migrate
執行命令之后,會詢問你是否創建數據庫,直接回車或者填寫 yes 自動創建數據庫

執行成功之后,再來訪問 lara-study.test 域名,哦豁?。?!歡迎來到 Laravel ?? !!! Welcome !!!

目錄結構
app 目錄
app 目錄包含您應用程序的核心代碼。我們很快會更詳細地探索這個目錄;然而,您應用程序中幾乎所有的類都將位于此目錄。
app 目錄就是我們實現功能開發的目錄
bootstrap 目錄
bootstrap 目錄包含引導框架的 app.php 文件。此目錄還包含一個 cache 目錄,其中包含用于性能優化的框架生成文件,例如路由和服務緩存文件。
config 目錄
顧名思義,config 目錄包含您應用程序的所有配置文件。通讀所有這些文件并熟悉您可用的所有選項是個好主意。
config 目錄在之后開發過程中探索
database 目錄
database 目錄包含您的數據庫遷移、模型工廠和種子文件。如果您愿意,還可以使用此目錄來保存 SQLite 數據庫。
該目錄主要實現創建數據庫表的遷移文件
public 目錄
public 目錄包含 index.php 文件,這是所有請求進入您應用程序的入口點,并配置自動加載。此目錄還包含您的資產,如圖像、JavaScript 和 CSS。
resources 目錄
resources 目錄包含您的視圖以及原始的、未編譯的資產,如 CSS 或 JavaScript。
routes 目錄
routes 目錄包含您應用程序的所有路由定義。默認情況下,Laravel 附帶了兩個路由文件:web.php 和 console.php。
web.php 文件包含 Laravel 放置在 web 中間件組中的路由,該組提供會話狀態、CSRF 保護和 cookie 加密。如果您的應用程序不提供無狀態的、RESTful API,則您的所有路由很可能都將在 web.php 文件中定義。
console.php 文件是您可以定義所有基于閉包的控制臺命令的地方。每個閉包都綁定到一個命令實例,允許簡單地與每個命令的 IO 方法進行交互。盡管此文件不定義 HTTP 路由,它定義了基于控制臺的應用程序入口點(路由)。您還可以在 console.php 文件中安排任務。
storage 目錄
storage 目錄包含您的日志、編譯的 Blade 模板、基于文件的會話、文件緩存以及框架生成的其他文件。此目錄分為 app、framework 和 logs 目錄。app 目錄可用于存儲應用程序生成的任何文件。framework 目錄用于存儲框架生成的文件和緩存。最后,logs 目錄包含您應用程序的日志文件。
storage/app/public 目錄可用于存儲用戶生成的文件,如應該公開訪問的個人資料頭像。您應該在 public/storage 創建指向此目錄的符號鏈接。您可以使用 php artisan storage:link Artisan 命令創建鏈接。
tests 目錄
tests 目錄包含您的自動化測試。默認情況下提供了 Pest 或 PHPUnit 單元測試和功能測試示例。每個測試類應以 Test 單詞為后綴。您可以使用 /vendor/bin/pest 或 /vendor/bin/phpunit 命令運行測試?;蛘?,如果您希望對測試結果有更詳細和美觀的表示,您可以使用 php artisan test Artisan 命令運行測試。
vendor 目錄
vendor 目錄包含您的 Composer 依賴項。
不必為這么多文件夾感到害怕,實際上在開發過程中與我們打交道的最多的就是
App目錄和routes目錄。至于其他目錄,至少在現在可以放一放,沒必要太關注。
那么到這里,關于 Laravel 初始化的過程已經全部講解結束,還順帶了解了下 Laravel 的目錄結構。當然在后續篇章中,我們不會立即講解框架的一些概念,例如容器,服務提供者 門面 之類的晦澀難懂的概念,因為這對于入門教程來說是不需要去深入了解的。但是如果涉及到相關的概念,教程也會指出來。教程的目的是盡快能讓你使用框架開發出來一個項目,能夠將自己的想法用 Laravel 表達出來。
后面案例代碼將會標記其所在文件相對路徑,以根目錄為參考物。例如
// app/Htttp/HelloController
somecode

浙公網安備 33010602011771號