使用 Docker 把自己的 Laravel 專案容器化

最近我正在學習如何使用容器管理平台 K8s,過程中深刻體會到容器化所帶來的許多好處。舉例來說,它可以更好地實現水平擴展,同時在更新服務時,可以使用滾動更新 (rolling update) 的方式,讓服務不間斷。因此某一天...

再見 2020!小弟的 2021 年的目標與對自己的期許

在說說 2021 年的目標之前,先來回顧自己的 2020 年。2020 年回顧2020 這一年,真的是多事之秋,但就對我個人來說,2020 年算是重新開始的一年。在 2019 年底,我因為個人生涯規劃離職 (應該每個人離職的理由都是寫...

foreach、array_map 與 Laravel Collection

下班滑手機,看到 JetBrains 兼 Laravel 技術傳教士范聖佑大大的社群專頁貼文。文中介紹了 PhpStorm 的套件 Collector,可以將 foreach、array_map 換成 Laravel Collection。Laravel Collection?看起來非常眼熟。L...

如何在 PHP 中測試 Trait

在使用 Laravel Livewire 的時候,我時常會把 livewire component 中可以重複使用的邏輯或是方法抽出並放在 Trait 中。Laravel Livewire 官方文件中也建議使用 Trait 來處理經常重複使用的邏輯。詳細可以參考下面兩...

簡單介紹 PHP 測試框架 - Pest (上)

Pest 是由 Laravel 團隊中 Nuno Maduro 所開發的 PHP 測試框架,是建構於 PHPUnit 上再包裝版本,除了完全兼容 PHPUnit,Pest 還提供更多優雅且實用的測試方法。前陣子發現 Laracasts 上原來有 Pest From Scatch 的...

PHP 的 Type Declarations (類型宣告)

在介紹 PHP 的 Type Declarations (類型宣告) 前,先來簡單解說一下引數與參數的意思。引數 (Argument):用於呼叫函式 (function) 時所給的變數。參數 (Parament):是函式中要使用的變數。<?php // 這裡的 $name...

CKEditor 5 教學 (三),上傳圖片至 Amazon S3

要想讓文章的內容更為生動,圖片可以說是必不可少的東西,畢竟圖文並茂的文章絕對是大大的加分。一般的文章編輯器,都會提供插入圖片的功能。本文中我們會使用 CKEditor 官方提供的 CKFinder 套件,實作一個將圖片插...

Laravel 中的 View Composer 該如何使用?

假設有一個網頁,這個網頁有一個區塊是 menubar (選單欄)。menubar 上面有許多連結,這些連結都是儲存在資料表 categories 中。因為這個 menubar 會固定在網頁上方,這代表幾乎所有的 blade 模板都會 include 這個 m...

簡單介紹 Laravel 的 DB Transactions

MySQL 資料庫,PHP 的好夥伴,在當前的版本中,MySQL 資料庫基本上都是使用 innoDB 作為預設的資料庫引擎。innoDB 與之前 MyISAM 相比,支援了 ACID 相容的交易 (Transaction) 功能。所謂的交易,是資料庫管理系統執...

在 Laravel 中使用 Google 的 reCAPTCHA

CAPTCHA,全稱為:全自動區分電腦和人類的公開圖靈測試(Completely Automated Public Turing test to tell Computers and Humans Apart)我們比較熟悉的叫法應該是驗證碼,是一種用來判斷使用者是否為真人還是機器人...