跳至主要内容

8 篇文章 含有標籤「laravel」

檢視所有標籤

· 閱讀時間約 7 分鐘
Vincent Chi

Laravel 有著優秀的預定義認證(Authentication)功能,讓開發者不必費心在重複製作用戶註冊、登入、登出等功能。

無論是早期的 laravel/ui 還是 laravel/fortify 都提供了安全、完整且方便的解決方案。

Kratos 是由 Ory Corp 所提供的開源認證解決方案,藉由設定檔的方式可以靈活設計認證模型(例如帳號密碼、第三方社群或 WebAuth 等 passwordless 的形式)

· 閱讀時間約 10 分鐘
Vincent Chi

在 2021 年中旬,我曾經寫過一篇 Laravel 環境設定,不過因為工具上有些許變化,所以在 2022 年末將其重新整理一遍。

事先聲明,本文中所寫的環境設計題專門為了我自己的工作流而打造。如果不適合你,那你是對的,請儘管改成適合你的工作流。

· 閱讀時間約 15 分鐘
Vincent Chi

網路上有大量的文章探討如何使用 Laravel Queue,可惜的是,它們通常就給個 Hello World 式的範例,並未深入探討。

本篇文章會從 Laravel Queue 的實際行為上進行分析,並且著重於「失敗」的案例。

· 閱讀時間約 7 分鐘
Vincent Chi

Google reCAPTCHA 是一個人類行為驗證機制,用於阻止爬蟲或類似的機器行為。

  • v1 (2007):基於驗證碼
  • v2 (2014):I'm not a robot 勾選框
  • v3 (2018):對當前用戶進行評分
  • Enterprise (2020):與 v3 類似,但加入更多功能(如密碼洩露檢測)

就目前為止,除了 Google 官方的 SDK 之外,幾乎找不到針對 reCAPTCHA enterprise 實作的 PHP 套件(大多都是 reCAPTCHA v2 及 v3)。

· 閱讀時間約 5 分鐘
Vincent Chi

隨著 MySQL 5.7 加入對 JSON 格式的原生支援,開始有許多開發團隊把 RDBMS 當 NoSQL 使用。本篇文章對於效能議題暫且擱置,顯而易見地,越自由的格式往往會帶來更沉重的維護成本。

舉例來說,目前資料庫中可能存在以下型式的資料

{
"age": 16,
"avatar": "avatars/avatar.png"
}

然而可能因為系統改版,需要更精準地計算用戶年齡,所以將 age 欄位改為 birth

{
"birth": "2002-01-01",
"avatar": "avatars/avatar.png"
}

· 閱讀時間約 8 分鐘
Vincent Chi

相較於比較現代的程式語言(如 Golang 或 Nodejs),PHP 的佈署是相對麻煩許多的--這主要是因為 PHP 的執行環境需要綁定一個網頁伺服器。

PHP 官方主要支援兩種佈署方式:

  • Apache + PHP Module:較簡單,由 Apache 統一管理 PHP 的生命周期
  • PHP-FPM:能夠搭配大部份支援 FastCGI 協定的 Web Server

註:在大部份應用情境下,Apache + PHP Module 會比 Apache + PHP-FPM 慢上一些,尤其是當 Apache + PHP-FPM 時可以啟用 Event MPM,相較於傳統的 prefork MPM 而言可以快上 50%