Hướng dẫn php fiber
Hôm qua (26/11/2021), PHP 8.1 đã được release với một loạt các tính năng mới như: enum, read only roperty, fibers,... và cải thiệt rất nhiều về mặt hiệu năng. Show Nội dung chính
Nội dung chính
Bài viết này mình sẽ liệu kê ra một số feature mới nổi bật trong PHP 8.1 1. Enumerations.Nếu như các bạn đã từng sử dụng các ngôn ngữ khác như: Enum là một kiểu dữ liệu đặc biệt, enum chứa một tập hợp các hằng số được xác định trước. Thay vì các bạn phải khai báo các const trong class như trước thì bạn có thể khai báo chúng vào một enum cho dễ quản lí. VD: PHP < 8.1
Giờ đây từ PHP 8.1 trở đi bạn có thể đặt nó trong
Để hiểu rõ hơn về 2. Readonly Properties.Ở phiên bản này PHP cung cấp thêm một loại thuộc tính chỉ được phép đọc mà không được phép ghi khi class đã được khởi tạo. Nếu bạn muốn một thuộc tính chỉ được phép đọc thì chỉ cần thêm keyword readonly vào sau visibility của thuộc tính đó. VD:
định nghĩa thuộc tính
Gán giá trị cho thuộc tính trong constructor (nếu gán giá trị ngoài phương thức __construct nó sẽ throw ra một Error exception).
3. First-class Callable.Tính năng này cho phép chúng ta tham chiếu đến bất kì một hàm, phương thức nào một cách ngắn gọn. Tính năng này PHP gọi nói là first-class callable. VD: Đối với PHP < 8.1
Giờ đây với PHP 8.1 bạn chỉ việc khai báo ngắn ngọn như sau;
4. Initializers.Ở phiên bản PHP 8.1 này bạn có thể khai báo default value của parameter là một object. VD:
5. Pure Intersection Type.Tính năng này cho phép chúng ta ràng buộc kiểu dữ liệu cho parameter một cách chặt chẽ hơn. VD: Đối với PHP < 8.1 nếu như chúng ta muốn parameter bắt buộc phải vừa implement Interator và Countable thì sẽ phải làm như sau:
Nhưng giờ đây với PHP 8.1 bạn có thể sử dụng VD:
6. Nerver return type.Tính năng này cho phép chúng ta định nghĩa ra một hàm sẽ không trả về về kiểu giá trị nào và được kết thúc bằng cách gọi hàm Để khai báo một hàm như thế chúng ta định nghĩa kiểu trả về của hàm là keyword never. VD:
7. Final class constants.Tính năng này cho phép chúng ta định nghĩa một VD:
8. Fibers.Đây là một tính năng cũng khá là vị trong PHP 8.1 lần này. Fibers là một util thực thi bất đồng bộ trong PHP. Khi sử dụng fiber bạn có thể thực thi code một cách bất đồng bộ giống như Generators. Bạn có thể xem qua ảnh sau để hiểu hơn về fiber. Bạn có thể thực thi, tạm dừng, đình chỉ hoặc dừng một filber bất cứ lúc nào bạn muốn. VD: Mình sẽ demo một ví dụ cơ bản với fiber
Output
Như các bạn đã thấy thì chúng ta có thể supend một fiber bất cứ lúc nào mà không ảnh hưởng đến luồng logic chính của chương trình. Mình sẽ nói sâu hơn về Fiber ở một bài viết cụ thể sau. 9. Array unpacking - hỗ trợ mảng bất tuần tự.Nếu như trước đây bạn không thể unpack một mảng bất tuần tự, thì giờ đây với phiên bản PHP 8.1 bạn đã có thể làm việc đó. VD:
10. Cải tiến về mặt hiệu năng.Đối với phiên bản PHP 8.1 sẽ cho hiệu năng nhanh hơn ~23% trên Symfony framework và ~3.5% trên Wordpress. Dưới đây là thông số benchmark đo được trên Symfony framework (chỉ số càng nhỏ thì là càng nhanh). |