5 điểm bởi GN⁺ 2024-11-22 | 3 bình luận | Chia sẻ qua WhatsApp
  • Bao gồm property hooks, khả năng hiển thị bất đối xứng, DOM API được cập nhật, cải thiện hiệu năng, sửa lỗi và tinh gọn tổng thể
    • Cung cấp property hooks hỗ trợ các thuộc tính được tính toán mà IDE và công cụ phân tích tĩnh có thể hiểu nguyên bản
    • Giới thiệu khả năng hiển thị bất đối xứng, cho phép kiểm soát độc lập phạm vi đọc và ghi của thuộc tính.
  • Tính năng mới
    • Thông qua thuộc tính #[\Deprecated], có thể áp dụng cơ chế ngừng dùng hiện có của PHP cho các hàm, phương thức và hằng số lớp do người dùng định nghĩa.
    • DOM API mới bao gồm hỗ trợ tuân thủ tiêu chuẩn cho việc phân tích tài liệu HTML5 và sửa nhiều lỗi tương thích lâu năm của chức năng DOM.
    • Có thể xử lý số với độ chính xác tùy ý theo hướng đối tượng bằng đối tượng BcMath\Number.
    • Cung cấp các hàm mảng mới như array_find(), array_find_key(), array_any(), array_all().
    • Cung cấp các lớp con mới của PDO: Pdo\Dblib, Pdo\Firebird, Pdo\MySql, Pdo\Odbc, Pdo\Pgsql, Pdo\Sqlite.
    • Có thể truy cập thuộc tính và phương thức của đối tượng mới được khởi tạo mà không cần dấu ngoặc.
  • Lớp, giao diện và hàm mới
    • Lazy Objects mới, triển khai JIT dựa trên IR Framework.
    • Bổ sung hàm request_parse_body(), bcceil(), bcdivmod(), bcfloor(), bcround().
    • Bổ sung các phương thức như DateTime::createFromTimestamp(), DateTime::getMicrosecond(), DateTime::setMicrosecond().
    • Bổ sung các hàm mb_trim(), mb_ltrim(), mb_rtrim(), mb_ucfirst(), mb_lcfirst().
    • Bổ sung các hàm pcntl_getcpu(), pcntl_getcpuaffinity(), pcntl_getqos_class(), pcntl_setns(), pcntl_waitid().
    • Bổ sung các phương thức ReflectionClassConstant::isDeprecated(), ReflectionGenerator::isClosed(), ReflectionProperty::isDynamic().
    • Bổ sung các hàm http_get_last_response_headers(), http_clear_last_response_headers(), fpow().
    • Bổ sung các phương thức XMLReader::fromStream(), XMLReader::fromUri(), XMLReader::fromString(), XMLWriter::toStream(), XMLWriter::toUri(), XMLWriter::toMemory().
    • Bổ sung hàm grapheme_str_split().
  • Ngừng dùng và thay đổi phá vỡ tương thích
    • Các extension IMAP, OCI8, PDO_OCI, pspell bị loại khỏi gói đi kèm và được chuyển sang PECL.
    • Kiểu tham số nullable ngầm định bị ngừng dùng.
    • Việc dùng _ làm tên lớp bị ngừng dùng.
    • Việc nâng 0 lên lũy thừa âm bị ngừng dùng.
    • Truyền mode không hợp lệ vào round() sẽ gây ra ValueError.
    • Hằng số lớp của các extension nay đã được gán kiểu.
    • Lớp GMP nay được đánh dấu là final.
    • Các hằng số và hàm liên quan đến MYSQLI bị ngừng dùng.
    • stream_bucket_make_writeable()stream_bucket_new() nay trả về các thể hiện StreamBucket.
    • Thay đổi hành vi của exit().
    • Hằng số E_STRICT bị ngừng dùng.
  • Cải thiện hiệu năng và cú pháp
    • Cải thiện hiệu năng, cú pháp và độ an toàn kiểu.
    • Khuyến nghị nâng cấp lên PHP 8.4.

3 bình luận

 
carnoxen 2024-11-23

Nhờ WordPress và Laravel, ít nhất đây vẫn là một ngôn ngữ chưa đến mức chết đói.

 
budaestew 2024-11-23

Đây là một ngôn ngữ mà dù WordPress hay Laravel có sụp đổ thì bạn vẫn không chết đói.

 
GN⁺ 2024-11-22
Ý kiến trên Hacker News
  • RFC đã nêu rõ lý do $this->countryCode không gây ra đệ quy vô hạn. Việc truy cập thuộc tính trong PHP có thể mang ý nghĩa khác nhau tùy theo ngữ cảnh tạo cảm giác khá "ma thuật".

    • Có kiểu "ma thuật" của ngôn ngữ nơi việc truy cập thuộc tính được chuyển thành gọi phương thức.
    • Tôi không phải người dùng PHP, nhưng lo ngại việc thêm kiểu phức tạp này vào ngôn ngữ.
  • Với tư cách là một lập trình viên PHP, tôi lo lắng về định hướng của PHP. Các tính năng ngôn ngữ mới làm tăng độ phức tạp của ngôn ngữ để đổi lấy lợi ích đáng ngờ.

    • Property hooks có nghĩa là việc truy cập thuộc tính được chuyển thành gọi phương thức.
    • Tôi từng dùng tính năng tương tự trong JS và Perl, nhưng các phương thức tường minh rõ ràng hơn và dễ mở rộng hơn.
  • Tôi vui khi thấy PHP vẫn đang phát triển mạnh. Năm 2021 tôi từng lo lắng khi Nikita Popov rời đi, nhưng PHP vẫn là một ngôn ngữ tốt với nhiều nhà phát triển vẫn đang hoạt động.

  • Tôi mong chờ property hooks nhất. Đây là tính năng tôi từng nhớ ở C#.

    • Tôi từng mô phỏng bằng __get()__set(), nhưng cách đó nặng nề và cần rất nhiều chú thích PHPDoc.
  • Khi xem phần nạp chồng accessor cho mảng, tôi phát hiện ra "Property Hooks". Tôi ngạc nhiên khi biết đây là tính năng mới được thêm gần đây.

    • Tôi vui vì tính biểu đạt và syntactic sugar từ các ngôn ngữ khác đang được đưa vào PHP.
  • Tôi hài lòng với bản phát hành PHP mới. Có rất nhiều cải tiến như stack trace tốt hơn cho closure, cải thiện hiệu năng, hỗ trợ HTML5, lazy object và hơn thế nữa.

  • Tôi mong chờ các đối tượng bcmath. Điều tôi thích là có thể kiểm tra kiểu dữ liệu mà không cần lớp bao bọc, hơn là các toán tử số học.

  • Tôi vui vì PHP vẫn đang tiếp tục phát triển. Điều đó gợi lại ký ức khi tôi bắt đầu làm freelancer.

  • Hàm array_find mới của PHP cho thấy vấn đề trong thiết kế ngôn ngữ. Nó giống array_search hiện có nhưng thứ tự đối số lại khác.

    • Nó được thêm vào PHP vì các ngôn ngữ khác có hàm kiểu này, nhưng phần lớn các ngôn ngữ không biến nó thành hàm toàn cục.
  • Tôi không hiểu public private(set). readonly public có vẻ phù hợp hơn.

    • Nó trông giống private(set) của Swift.