使用 Docker 打造多 PHP 版本開發環境

過去在這幾年間 PHP 終於從 5.x 升版到了 7.x,所以公司內的新專案也因應改版也順勢使用新版本,那原本的專案就保持舊版本或是之後有計畫升級新版本。

但這樣就會造成環境混雜的問題,所以同時可能會有 5.45.6 或是 7.0 的專案需要開發。

而在一般的開發環境之下,每台電腦就只能安裝單一版本的 PHP,就算有機會安裝多個環境也有機會造成環境污染,以及無法快速切換版本。

所以利用 Container 的方式將不同的環境打包到個別的 Image 獨立運作,再利用 PHP-FPM 可以聆聽 socket 或是 port 的特性,以及 NginxProxy 將請求送到不同的環境去執行。

More

個人工具的改進

最近對於自己個人用的工具有些想法,主要也是受到這些年工作的影響。在資訊這行業永遠有學不完的東西,這幾年也是學了很多新奇的東西,但也是因為這樣個人的工具也就成長有限。

所以近期(其實已經開始了)會對於 Github 上的專案做些調整,目前頃向於將多的專案合而為一,然後再來重構有跟工具關聯的作品。

目前計畫如下。

More

PHP 7 PREG_JIT_STACKLIMIT_ERROR

最近在重構學生時代的作品 Pointless 讓它符合現代的技術,順便熟悉一下 PHP7新的功能。

Pointless 中因為使用純文字的 markdown 格式來儲存文章所以有大量的機會會使用到 preg_* 相關的函式。

PHP7 其中的一個改變就是在 PCRE 中加入了 JIT 功能,可以用來優化正規表示式的效能,但是礙於 stack 的容量有限所以在處理長度較長的字串的時候,很容易就超過預設的 32K 的限制產生出 PREG_JIT_STACKLIMIT_ERROR

More
About
ScarWu

刀疤

記錄學習過程、生活以及一些想說的話。