PHP8 nè

PHP8 và những điều mới mẻ

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!!

facebook
Seth Phát

Seth Phát

Mình là Phát - biệt danh Seth Phát. Hiện đang là một Sr. Full-Stack Engineer. Mình là một người yêu thích và đam mê lập trình và hiện tại đang theo về phần Web là chủ yếu. Mạnh Back-end và khá Front-end, vẫn đang theo đều cả 2 :v. Còn gì bằng khi được làm những thứ mà mình yêu thích, đam mê ;)

Leave a Reply

Your email address will not be published. Required fields are marked *

Bình luận qua Facebook