iT邦幫忙

2022 iThome 鐵人賽

DAY 4
0
Modern Web

LV的全端開發體驗系列 第 4

Day04 使用內建的會員系統Breeze

  • 分享至 

  • xImage
  •  

早期Laravel有一個 Laravel/ui 的套件,有內建一個基本的會員註冊登入系統,很多教學者也以此為宣傳,告訴大家 laravel 用來建立會員系統有多快,然後呢?然後就沒有然後了,很多新手不知道要去那裏調整登入方式或是修改頁面,所以我一直都覺得,學習還是要靠自己,不要相信那些速成的花招,踏實點比較好,該花的時間就是要花下去。

新版本的 laravel 有提供兩套會員相關的鷹架系統,所謂的鷹架(scaffold),就和其名一樣,只是幫你搭建一個基本的形狀,雖然看起來有一定程度的功能,但也保留了很多可以再改善及自訂的空間。

Breeze - 一個輕量級的會員系統,包含了認證的功能,同時支援前端以 vue, react, inertia 或 liveware 來建立前後端分離的 SPA 架構,CSS 的框架預設是使用 tailwind CSS

Jetstream - 一個用上了不少 laravel 特性的會員系統,同時支援群組功能,但是架構有點大,可以花另外三十天來說明,所以這次不使用這套。

Inertia.js

選擇 laravel Breeze 還有一個原因是它有提供了 Vue+Inertia.js 的方案,

Inertia.js 是什麼?它是一個 SPA 應用的中間套件,把原本前後端溝通的複雜流程簡化,讓後端工程師可以在原本工作流程中去實現交互,而不用另外再寫API來傳遞資料;

套件的說明可以參考官網:inertia.js;

實例應用可以參考鐵人賽 Lucas 大大的文章,我是因為這系列文章入坑 inertia.js 的:

關於我用 Laravel 寫 SPA 卻不寫 API 的那檔事

Laravel 本身也推出一個和 inertia 類似的套件是 liveware,前端搭配的是 laravel 自己的 blade,有興趣的朋友可以參考看看。

我沒有選擇 liveware 的原因是想走出舒適圈,整套都是 laravel 當然很好,但多點異界整合對於開拓視野更有幫助,所以這個選擇沒有優劣對錯的問題,只是傾聽心底的聲音的結果.....(在供三小...)

Tailwind CSS

選擇 laravel Breeze 最後一個原因是 laravel 近幾個版本把預設的 CSS 框架從 bootstrap 改成 tailwind css 了,我懶得去改設定,所以就順勢學了起來,之後就覺得很棒,一直用到現在,我並沒有用到太多的進階功能,基本的 class 我就很夠用了;

和 bootstrap 最大的不同大概是編譯後的 CSS 檔很小,所以傳輸速度快,而在 3.0 加入 JIT 模式後,幾乎已經不用再自己定義額外的 CSS 了,全部都可以在 class 中完成,缺點就是每個組件的 class 都有夠長的。。。

一樣的,附上官網及讓我入坑的鐵人賽文章:

Tailwind CSS

TailwindCSS - 從零開始

Laravel Breeze

廢話太多了,來安裝吧!
複製官網的指令:

composer require laravel/breeze --dev

這個指令只是把套件抓下來,並指定為開發環境下使用,接著要正式安裝,讓套件把一些 controller, migration, config 之類的都幫我們建好,當然也包含了 vue 及 inertia 的設定。

php artisan breeze:install vue

這個指令會以使用vue做為前端頁面為前提來安裝需要的內容。

可以看到在安裝完成時,laravel 自動幫我們執行了一次的 vite build 的動作,並產了一堆的組件的檔案及 css,你可以看到這個 css 只有 23Kb 左右。

接著是建立資料庫,在 .env中填入你的資料庫名稱,記得先在 mariaDB 中建好一個資料庫:

下指令來建立對應的資料,想知道資料表的內容,可以參考資料夾 database 中的 migration

php artisan migrate


建完資料表,後端的部份算是告一段落了,接下來是處理前端,把前端需要的套件都裝起來,下個npm的指令就可以了

npm install


laravel 幫我們把 viteserver 環境和 apache 的環境整合好了,所以不用擔心 port 佔用的問題,也不用擔心在看前端是一個網址,看後端時是另一個網址,你可以在同一個網址享受前端使用 vite 帶來的即時回應,也可以在後端修改後,在同一個頁面中立即查看結果。

執行 vite server 環境

npm run dev


首頁:

你可以快速的測試一下,看看會員功能是否正常:
註冊:

登入:

後台:

相關的controller放在 Auth 資料夾中

前端頁面檔案放在 js 中的 Page 組件放在 Component 中 會員系統的主要頁面是在子資料夾 Auth

這樣我們就完成了基本會員系統的建置了,想了解到底裝了什麼細節及設定長得如何的可以參考以下的檔案:

  • vite.config.js
  • package.json
  • composer.json
  • tailwind.config.js
  • postcss.config.js
  • jsconfig.json
  • \resources\js\app.js

以上這些檔案,根據需求不同,可能會再去做個別的調整,之後有遇到再來說,今天就先到這吧。


上一篇
Day03 專案建立
下一篇
Day05 規劃路由、頁面、控制器
系列文
LV的全端開發體驗30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言