Tính Năng Mới Nổi Bật Trong PHP 8.4
PHP 8.4 được dự kiến phát hành vào ngày 21 tháng 11 năm 2024, với nhiều cải tiến và tính năng mới hấp dẫn. Trong bài viết này, chúng ta sẽ khám phá những điểm nhấn chính của bản cập nhật này, bao gồm:
- Hooks Thuộc Tính
- Cải Tiến JIT
- Chuỗi Phương Thức Không Cần Dấu Ngoặc
- Thay Đổi Về Nullable
- Hỗ Trợ DOM HTML5
1. Tính Năng Hooks Thuộc Tính
Một trong những thay đổi mang tính cách mạng nhất trong PHP là khả năng định nghĩa hooks cho các thuộc tính. Điều này cho phép bạn tạo ra các getter và setter trực tiếp cho mỗi thuộc tính mà không cần phải viết nhiều mã boilerplate. Ví dụ:
php
class BookViewModel
{
public function __construct(
private array $authors,
) {}
public string $credits {
get {
return implode(', ', array_map(
fn (Author $author) => $author->name,
$this->authors,
));
}
}
public Author $mainAuthor {
set (Author $mainAuthor) {
$this->authors[] = $mainAuthor;
$this->mainAuthor = $mainAuthor;
}
get => $this->mainAuthor;
}
}
2. Cải Tiến Chuỗi Phương Thức Mới
PHP 8.4 cho phép bạn sử dụng chuỗi phương thức mà không cần bao bọc các gọi hàm trong dấu ngoặc đơn, giúp mã trở nên sạch sẽ hơn:
php
$name = new ReflectionClass($objectOrClass)->getShortName();
3. Thay Đổi Về JIT
Cùng với nhiều cải tiến khác, PHP 8.4 thay đổi cách cấu hình JIT. Bây giờ bạn có thể dễ dàng vô hiệu hóa JIT qua cấu hình:
php
opcache.jit=disable
opcache.jit_buffer_size=64m
4. Deprecated Các Kiểu Nullable Ngầm Định
Hành vi ngầm định cho các biến kiểu gán giá trị mặc định là null sẽ bị ngừng hỗ trợ. Thay vào đó, bạn nên làm rõ ràng kiểu nullable:
php
function save(?Book $book = null) {}
5. Hỗ Trợ DOM HTML5
PHP 8.4 cung cấp lớp \Dom\HTMLDocument
để phân tích cú pháp mã HTML5 chính xác, mang lại sự tiện lợi hơn cho lập trình viên trong việc xử lý nội dung web:
php
$doc = \Dom\HTMLDocument::createFromString($contents);
Truy Cập Sớm Vào PHP 8.4 (Dev)
ServBay cung cấp cho các nhà phát triển cơ hội truy cập sớm vào các tính năng hấp dẫn của PHP 8.4. Điều này cho phép bạn khám phá, thử nghiệm và tích hợp các tính năng mới vào dự án của mình trước khi bản chính thức được phát hành. Đây là một cơ hội tuyệt vời cho các nhà phát triển muốn đột phá và tạo ra những ứng dụng web mạnh mẽ hơn.
source: viblo