Hello Laravel! 準備
- Hello Laravel! 準備
- 什麼是 Laravel?
- 為什麼選擇 Laravel?
- 優雅的語法
- 豐富的功能
- 強大的社群支援
- 安全性
- 易於擴充套件
- Laravel 的流行程度
- 其他流行的 Web 框架對比
- 環境準備
- 下載 Laragon
- 設定工作目錄
- 新增 PHP 版本
- 設定環境變數
- Composer 安裝
- 初始化 Laravel 專案
- 配置資料庫
- 目錄結構
app
目錄bootstrap
目錄config
目錄database
目錄public
目錄resources
目錄routes
目錄storage
目錄tests
目錄vendor
目錄
什麼是 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
- 下載 Laragon
選擇下面的版本安裝
下載成功之後,按照提示直接點選下一步下一步安裝即可。再 Laraegon 安裝成功之後,你會看到軟體介面
注意一定要記住 Laragon 安裝的目錄
看到下面的介面,就算是安裝成功了
設定工作目錄
這一步非常重要,一定要設定好,因為 Laragon 會幫根據檔案目錄名稱自動建立虛擬主機,就省的自己去設定虛擬域名之類的了。
點選右上角的設定
然後會看到下面的介面,根據自己實際的專案目錄設定對應的值
如圖,本人所有的專案都設定在 C 盤的 project
目錄,所以在之後安裝 Laravel 專案的時候,我都會在 c:\project
目錄下安裝
新增 PHP 版本
由於需要使用 PHP >= 8.2
版本,所以這裡需要安裝新增一個 8.2 版本,Laragon 新增 PHP 版本非常簡單。可以到 PHP 軟體包下載頁面
- PHP8.2 版本下載
找到對應版本,這裡選擇執行緒安全版本 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 安裝比較簡單,只需要到下載的頁面即可
- 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 目錄詳解 這裡不多做贅述
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
原文連結