2021 年 11 月底, PHP 8.1 釋出了。每次釋出新版本時,官方總是不外乎地會宣稱新版本的執行速度提升了。可是到底是不是真的有提升?就算有提升,是提升多少呢?實際上有感嗎?可能要實測才知道。
於是我這次就想要來親身體驗看看,實際測試看一下效能提升了多少。
本次會利用 Laravel 8.x 範例應用來做測試,測試的工具為 ApacheBench。
2021 年 11 月底, PHP 8.1 釋出了。每次釋出新版本時,官方總是不外乎地會宣稱新版本的執行速度提升了。可是到底是不是真的有提升?就算有提升,是提升多少呢?實際上有感嗎?可能要實測才知道。
於是我這次就想要來親身體驗看看,實際測試看一下效能提升了多少。
本次會利用 Laravel 8.x 範例應用來做測試,測試的工具為 ApacheBench。
在 PHP 8.0 發佈一年後,PHP 8.1 在今年 2021 年 11 月 25 日也發佈了。
去年我曾寫了一篇文章,介紹 PHP 8.0,而過去這一整年,我在開發上也實際使用了不少 PHP 8.0 的新功能,例如 Nullsafe operator
、match
及 Constructor property promotion
。
這些改進跟新功能,替開發帶來不少方便跟效率。我相信這次的 8.1 版本,PHP 團隊也會帶來不少令人驚豔的地方吧!
本篇一樣會介紹一些我感興趣的新功能,搭配一些簡單的試玩。大家可以參考看看。
大家一開始在學習使用 Docker 時,會學著撰寫 Dockerfile,也會從 DockerHub 上挑選適合的 Image。
但不知道大家有沒有發現,有時候明明都是同一個東西,卻有很多種不同的選擇?比如說,我自己最近常用 PostgreSQL postgres,一樣都是 14 版,卻有 postgres:14、postgres:14-bullseye、postgres:14-alpine 等,各種不一樣標籤的 Image 。
這些不一樣的 Image 對初學者來說蠻令人困惑的,會不曉得有什麼差別,也不知道該選哪一個。但理解後發現其實沒有那麼複雜,簡單來說,後面那些字,指的是背後的作業系統。
跳槽到新創團隊一陣子後,隨著一開始的新鮮感跟熱情逐漸散去,疲乏感就漸漸回來了。
相較於原公司的官僚,這次的疲乏感來源在於,團隊在乎的是開發時間要短、速度要快,而不看重細節與品質。
雖然可以理解新創團隊有其壓力,需要趕快滿足客戶的需求,需要趕快找到適合的商業模型,需要趕快建立起自己的品牌等。但作為一個工程師,心裡總是希望可以做出更好的成果的。
不過說起來,不管在什麼規模的公司,好像或多或少會遇到類似的問題,畢竟「時間」跟「品質」對專案管理來說,本來就是一件非常對立跟糾結的事情,很難做到大家都滿意。
本篇為 PHP 系列
__invoke()
是 PHP 眾多魔術方法中的一個,可以用來讓你將物件作為 function
使用,詳細說明可參考官方說明文件。
問題是,把物件當作 function
使用是什麼意思呢?其實就是在物件後面直接加()
,如果還是不清楚,我們接著看以下的範例就知道囉。
本篇為PHP系列。
在 JavaScript 中有個好用的箭頭函式,用起來很簡短,但對於不懂的人來說,會覺得有點魔幻,覺得很神奇卻又不是那麼好理解,因此常常被前端工程師拿來炫技,那什麼是箭頭函式呢?
我們來看下面的 JavaScript 範例,我們有一個 array,想要把其中的每個值都變成兩倍,那可以使用 map 搭配匿名函式來這樣做:
let numbers = [1, 2, 3, 4];
let doubleNumbers = numbers.map(function(number) {
return number * 2;
});
這樣我們的 doubleNumbers
就會是 [2, 4, 6, 8]
。
而上面這個範例,若改成使用箭頭函式的話,就會像這樣,變得比較簡潔:
let numbers = [1, 2, 3, 4];
let doubleNumbers = numbers.map((number) => number * 2);
這樣簡潔的特性,是箭頭函式深受喜好的原因之一,而這樣的箭頭函式在 PHP 也可以使用了。