SQL – 製作分頁會用到的取得所有列表總數

通常我們要取得第一頁前 10 筆

但製作分頁,會需要得知總數量好讓 PHP 中顯示分頁總數按鈕。如果我們又下第二次 count() 去統計那就太麻煩了。所以我們可以搭配使用 SQL_CALC_FOUND_ROWS 忽略 offset / limit 統計總數量,例如第一次我們下

要注意 SQL_CALC_FOUND_ROWS 後方不佳半形逗號。接下來下指令

就會取得第一次條件並忽略 offset / limit 的總數量了。

參考網友

phpUnit – 如何測試類別中的保護或私有方法

通常在 phpUnit 中, 為了避免過度設計,要測試的方法都是 Class 的公開方法。但有時候我們要對受保護的方法或私有方法、甚至是屬性作測試,那該如何測試寫?

我們可以藉由 「ReflectionClass 反射類別 / ReflectionMethod 反射方法」 來達到,以下是 phpUnit 運行在路徑 tests/ 底下的範例

至於何時用 ReflectionClass 或 ReflectionMethod,如果要同時測試 Class 底下多個 Methods,那麼使用 ReflectionClass 會方便一點;如果只是單純測試某個 Methods 那麼就使用 ReflectionMethod 。

參考來源

JavaScript – 產生亂數的方法

方法一

方法二

參考來源

Laravel – Validator 正規表示驗證密碼

條件:

  • 包含英文大小寫
  • 數字 0 – 9
  • 總長度最少8個字

那麼使用 Validator 的寫法,就可以這麼寫

php – phpUnit 快速教學

透過 composer 安裝

透過 Composer 的 Autoload 指定 psr-4 的自動讀取規範。如修改 composer.json,我指定命名空間 MyLib 對應的根目錄是 src。

開始建立我們的第一支類別 src/SayHi.php

我們建立一支單元測試檔 test/CaryTest.php。用來測試 SayHi::main() 回傳的時候,是否等於我們預期的值 “Hi”。我們透過 phpUnit 提供的斷言方法 assertEquals()。

有更多的斷言方法,可以參考官網。接著 Command-Line 運行測試

如果有多筆 test 的話,可以運行到資料夾,會一次跑所有的測試

接著我們能看到執行的結果

大致上懂到這裡就好。

我們可以看到輸出有個「.」的符號,那是有意思的。官方說

  • . 代表測試成功
  • F 測試運行的時候發生斷言失敗
  • E 測試運行的時候發生錯誤
  • R 測試運行的時候被標記有風險
  • S 印出的時候測試被跳過
  • I 印出的時候, 測試被標記未完成或尚未實現

執行測試的時候,也可以使用這種格式化