Hi các bạn,
PHP8 đã ra mắt vào tháng 11 năm 2020 (tức tầm 4 tháng trước kể từ ngày bài này dc đăng)
Features mới có, syntax mới có,… Vậy, những gì đặc biệt nhất mà PHP8 đem lại cho ta là gì?
1/ PHP 8: JIT
JIT – Just In Time compilation – compiler mới có thể tăng performance PHP Application của mình lên rất nhiều.
Như các bạn đã biết trước đây, PHP là 1 interpreter language, tức khi ta access, PHP mới build ra machine code và execute liền. Vậy nên performance tương đối ko cao lắm.
Với JIT strategies này, có thể speed up dc PHP lên rất là nhiều.
2/ PHP8: Một số syntax mới hay ho
Nullsafe Operator
Sẽ giúp ta đỡ fải check null rất nhiều. Ngoài ra nó cũng hỗ trợ cho cả method (null coalesce thì ko)
$country = $session?->user?->getAddress()?->country;
Named Arguments
Là 1 cách để ta truyền tham số vào function thông qua tên của function’s arguments. Rất là oke, ta ko fải truyền từ A-Z như hồi xưa nữa nếu như muốn by-pass 1 số arguments ko cần thiết.
function foo(string $a, string $b, ?string $c = null, ?string $d = null)
{ /* … */ }
foo(
b: 'value b',
a: 'value a',
d: 'value d',
);
Constructor Properties Promotion
Bạn nào đã từng code với 1 số ngôn ngữ mới (vd: TypeScript) thì sẽ biết dc cái này. Rất là hay và tiện, ta đỡ fải set $this->something = $something
trong constructor nữa.
class Point {
public function __construct(
public float $x = 0.0,
public float $y = 0.0,
public float $z = 0.0,
) {}
}
Trait Abstract Method Validation
Với PHP8, Abstract Method sẽ dc validate (cùng argument, cùng kiểu trả về) khi ta implement abstract method ở 1 class nào đó.
Điều này khá là oke, giúp ta follow theo nguyên mẫu đã dc đề ra sẵn
===
Tìm hiểu thêm các điều hay ho tại: https://www.php.net/releases/8.0/en.php
3/ Conclusions
Sắp tới, mình sẽ dần dần move qua PHP8 để trải nghiệm và làm việc luôn. Hehe, bắt trend thử xem nào.
Thanks for reading!!