PHP - each 與 foreach 操作 pointer 的版本地雷

零、前言

這陣子在進行手邊 PHP 專案的版本升級,從 PHP 5.x 升級到 PHP 7.x ,由於專案裡大量的使用了 while(list($key, $value) = each($items)) {} 這樣的語法,而在 PHP 7.2 之後,官方直接標注不建議使用,因此升級的過程中,順帶轉換為 foreach 結構,在過程中踩到一些 PHP 5.x 升級到 PHP 7.x 之後的特性雷,因此寫下這篇作為紀錄。

PS. 現行 PHP 7.2 當未關閉警告的情況下,會提醒 PHP: each - Manual 不建議使用

1
2
Deprecated: The each() function is deprecated. 
This message will be suppressed on further calls in /xxxx.php on line xx

演講紀錄 - GitLab CI 從團隊導入到運用

01 - 活動紀錄

  • 活動方:GitLab Taipei User Group
  • 名稱:GitLab 從團隊導入到運用
  • 基本介紹:

這份簡報分為兩個部分:

第一部分怎麼讓一個完全沒有原始碼版本控制的大型專案,逐步的轉變,陸續導入 GitLab 的各種功能,直到現在專案已經有了自己的 CI/CD 流程。這期間期間當然包含了一些政治面、商業面的因素,但整體經歷了哪些事情呢?在這部分會跟大家聊聊這段故事。

第二部分,在使用及導入 GitLab 的過程中,隨著專案演進 .gitlab.yml 定義的流水線 pipeline 上有越來越多工作,怎麼讓工作流程進行的更快一些呢?又,可以怎麼整理 .gitlab.yml 檔,讓他更簡潔一些?在這部分將跟大家分享一些小技巧。

演講紀錄 - 台日技術社群交流會 Three Git Tips

01 - 活動紀錄

  • 活動:台日技術社群交流會
  • 名稱:20190323 Three Git Tips
  • 內容介紹:

在台日技術社群交流會所做的分享,這份簡報主要介紹三個 GIT 的指令,分別是 bisect、rerere 以及 worktree:

  • bisect 指令,我們可以比較快的找到發生錯誤的 commit
  • rerere 指令,可以自動重複上一次的解決衝突的動作
  • worktree 在相同的 repo 中,快速建立或取得 branch 在不一樣的工作資料夾中進行檔案修改

Utility - 使用 WebSiteBackupTools 備份網站

前言及緣由

找了好一陣子,一直沒能弄到自己喜歡&順手的網站備份工具,想一想自己想要的需求應該不會太難,主要應該要有以下需求:

  1. 使用設定檔方便一台主機上有多個網站需要進行不同的備份
  2. 備份的內容包含檔案及資料庫
  3. 備份檔案上傳 Dropbox
  4. 只保留一週的備份檔

但,一直沒能找到自己順手的…於是,就自己動手了一個基本符合自己需求的工具 - WebSiteBackupTools , 這個工具使用了 Dropbox-Uploader 這個 Dropbox Uploader is a BASH script 也不用再自己額外寫 Dropbox API 的功能,且持續的更新中,不致於發生功能壞掉沒能修的問題。

以下就繼續說明該如何使用囉!

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器