Docker – Laradock – 快速安裝筆記

事前

以下示範 Nginx, MySQL, phpMyAdmin, PHP, Laravel

期望的架構

  • myProject (這是你自訂的專案名稱)
    • www (放置 Laravel 的地方)
    • laradock (你的專案需要的 Laradock 相關檔案)

也就是一個專案會配置一個 laradock 路徑,例如

  • A – project
    • www
    • laradock
  • B – project
    • www
    • laradock

這樣劃分的優點是每個專案都有專屬的環境,缺點就是你要寫不同專案就要切換不同的 Laradock。

開始步驟

下載 docker

進入專案資料夾後

下載下來的檔案會放在路徑 laradock

建立 www

這是我們準備存放 laravel 的路徑

編輯設定

修改如

檢查設定 php my admin

確認 laradock/.env 關於 MySQL 的相關設定,這些資料我們稍後會用到

Docker 修改 Nginx 設定

修改為

啟動 Docker Image 為 Container

*停止運行可下指令 docker-compose down

進入工作區域

在 workspace 內下載 Laravel

注意我們建立的目錄使用 .

權限修改

嘗試訪問

http://localhost:8000

讓 Laravel 連線 MySQL

修改如下

存檔後接著

運行資料庫遷移如果正常運作就沒問題囉!

訪問 phpMyAdmin

http://localhost:8080

我們可以使用這項設定進入

如果要使用用戶 root 登入,那麼密碼是MySQL 設定中的 “root”。

Git – 重新設定遠端 Repository

有時候我們會替換遠端倉儲位置,例如要移轉的時候,那就須要重新指定

Git – GitHub 出現 「Please make sure you have the correct access rights and the repository exists.」

接手專案維護的時候,準備要 git pull 卻出現錯誤

這是因為使用 ssh 連線到 GitHub 但可能出現 key 遺失或遭受更改的關係,如果不是要自動化處理,我們可以替換成詢問 username 與 password 的模式來解決這個困擾。

參考來源

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 。

參考來源