0%

想像用口頭或文字描述 Git Flow 流程:首先在 developfeature 分支,然後完成後合併回 develop。接著上線要在 developrelease 分支,定版後即可合併進 master 並 tag 版本…

這樣的描述已經非常難懂了,若是用口頭說明可能就跟講 rap 一樣難懂。俗話說的好--「一圖勝萬言」,今天要介紹的 gitdags 是畫 Git Log 的工具,把圖畫好畫面,可以讓團隊在溝通 Git 流程過程更順利。

閱讀全文 »

PHP 的運作原理是先把 PHP 原始碼編譯成 opcodes 再開始進 Zend VM 和 CPU,這部分可以參考 2020 介紹 PHP 8 的簡報,裡面第 12 頁剛好有提到 PHP 從解析到進 CPU 的流程。

在討論 PHP 效能的時候,除了直接寫 benchmark 測試以外,還有另一個方法是查編譯出來的 opcodes 為何。而本篇文章的重點會是試著把 opcodes 抓出來,做些簡單的比較。

閱讀全文 »

PHP 的 isset()empty() 是解析變數常用的語言結構,兩者用法很接近,有時一不小心就會誤用。

這是一個老掉牙的主題,隨便 Google 都一堆比較文,官網也有描述它們的差異。但我還是決定重覆造輪子,主要是想把 array_key_exists() 函式拿來一起討論。

同場加映:??(Null coalescing operator)與 property_exists() 函式的比較

閱讀全文 »

以前就有看過 Kibana 的各種資料呈現功能。最近因工作需求,所以研究了一下 Kibana 用法,同時記錄這份筆記。

主要是因為手邊只有現成的 log 檔案,但沒辦法用簡單的 grep 指令來達成複雜的功能,因此才會參考 Kibana 的做法。

閱讀全文 »

PHPBrew 是國內 PHP 大神 c9s 所開發的,目的類似 nvm、rvm 或 pyenv,都是在做對應語言的直譯器下載編譯與切換的工具。

過去一直都是使用 brew install php 來安裝單一的 PHP 直譯器,因為維護的產品還沒遇到不同 PHP 版本的問題。但最近有需求要在 7.x 與 8.0 互相切換,在使用 brew link 有些情境下會失效,非常煩人,現在要準備改用 PHPBrew 了。

閱讀全文 »