close

TinoHost hỗ trợ PHP 8.0: cải tiến với tính năng mới, hiệu suất mới

Tác giả: Hồng Nhi Ngày cập nhật: 09/03/2021 Chuyên mục: Thông Báo
Disclosure
Website Wiki.tino.org được cung cấp bởi Tino Group. Truy cập và sử dụng website đồng nghĩa với việc bạn đồng ý với các điều khoản và điều kiện trong chính sách bảo mật - điều khoản sử dụng nội dung. Wiki.tino.org có thể thay đổi điều khoản sử dụng bất cứ lúc nào. Việc bạn tiếp tục sử dụng Wiki.tino.org sau khi thay đổi có nghĩa là bạn chấp nhận những thay đổi đó.
Why Trust Us
Các bài viết với hàm lượng tri thức cao tại wiki.tino.org được tạo ra bởi các chuyên viên Marketing vững chuyên môn và được kiểm duyệt nghiêm túc theo chính sách biên tập bởi đội ngũ biên tập viên dày dặn kinh nghiệm. Mọi nỗ lực của chúng tôi đều hướng đến mong muốn mang đến cho cộng đồng nguồn thông tin chất lượng, chính xác, khách quan, đồng thời tuân thủ các tiêu chuẩn cao nhất trong báo cáo và xuất bản.

PHP 8.0 là gì?

Giới thiệu PHP 8.0

PHP được xem là trợ lý đắc lực giúp người dùng vừa có thể làm việc với một đối tượng, vừa xử lý các tình huống bất ngờ nảy sinh. Một phiên bản PHP phù hợp sẽ phát huy tối đa hiệu suất website của bạn. Phiên bản PHP mặc định được kích hoạt cho các domain có sẵn hoặc tạo mới là PHP 7.4 . Tuy nhiên một số trường hợp mã nguồn yêu cầu hoạt động trên trên 1 phiên bản khác, bạn có thể chọn phiên bản PHP mong muốn cho website. Được phát hành vào ngày 26/11/2020, PHP 8.0 là một bản cập nhật với nhiều ưu điểm vượt bậc của ngôn ngữ PHP. Do PHP 8.0 có nhiều sự thay đổi so với phiên bản trước đó, bạn sẽ cần thực hiện một số thao tác với code của mình để có thể vận hành trên PHP 8.0. Tuy nhiên, nếu bạn đã cập nhật từ PHP 7.0 trở lên, thao tác nâng cấp lên PHP 8.0 sẽ không quá phức tạp. tinohost-ho-tro-php8Nhà đồng sáng lập và nhà tư vấn chính tại PHP Consulting Company – Stefan Priebsch – khuyên rằng việc chuyển sang PHP 8.0 đòi hỏi phải chuẩn bị nhiều hơn so với việc nâng cấp từ PHP 5.x lên PHP 7, do các vấn đề cũ đã bị xóa khỏi ngôn ngữ này. (Theo TechRepublic)

PHP 8.0 có gì đặc biệt?

PHP 8.0 sở hữu những tính năng mới gồm JIT, named arguments, union types, attributes, constructor property promotion, match expression, nullsafe operator mang đến hiệu suất cao lớn nhờ thay đổi cú pháp. Đồng thời, PHP 8.0 cũng có những cải tiến nhỏ trong kiểu hệ thống, xử lý lỗi và tính nhất quán. Hiện tại, tất cả hosting tại TinoHost đều đã bắt đầu hỗ trợ PHP 8.0.

8 điểm nổi bật vượt trội của PHP 8.0

#1. Đối số được đặt tên (Named arguments)

Có thể đặt tên khi truyền tham số là điểm nổi bật đầu tiên của PHP 8.0. Một function sở hữu từ 3 tham số trở lên sẽ dễ khiến developer lúng túng khi sử dụng vì không nhớ rõ thứ tự truyền hoặc ý nghĩa của từng tham số. Khắc phục tình trạng này, Named arguments sẽ giúp bạn:
  • Chuyển các giá trị vào một hàm, chỉ xác định các thông số bắt buộc, bỏ qua các thông số tùy chọn.
  • Các lập luận không phụ thuộc vào trật tự và tự ghi lại

tinohost-ho-tro-php8 #2. Thuộc tính (Attributes)

Với các phiên bản PHP 7 trở về trước, người dùng phải khai báo các thuộc tính một cách rõ ràng. Ông Nikita Popov (tác giả của RFC) tiết lộ sẽ rút gọn lại cách khai báo các tham số bằng cách đặt trong các tham số ở hàm khởi tạo. Do đó, thay vì chú thích PHPDoc, thuộc tính của PHP 8.0 giúp bạn sử dụng siêu dữ liệu có cấu trúc với cú pháp gốc của PHP. tinohost-ho-tro-php8

#3. Khuyến cáo thuộc tính hàm dựng (Constructor property promotion)

PHP 8.0 có code định nghĩa ngắn hơn để khởi tạo thuộc tính. RFC này bổ sung thêm đường cú pháp để tạo các đối tượng giá trị hoặc đối tượng truyền dữ liệu. Thay vì chỉ định các thuộc tính của lớp và một hàm tạo cho chúng, PHP 8.0 có thể kết hợp chúng thành một. tinohost-ho-tro-php8

#4. Hợp nhất các kiểu (Union types)

Bản chất PHP được định kiểu động của PHP. Do đó, trong nhiều trường hợp, kiểu liên hợp này sẽ rất hữu ích. Thay vì các chú thích PHPDoc cho sự kết hợp của các kiểu, bạn có thể sử dụng các khai báo kiểu liên minh gốc được xác thực trong thời gian chạy.  Vì thế, một biến có thể thuộc một vài kiểu dữ liệu.

#5. Trình biên dịch JIT (Just-in-Time Compiler)

Đây là một kỹ thuật được PHP tích hợp vào việc biên dịch code PHP thành mã máy.  Điểm cải tiến nổi bật của JIT chính là trình biên dịch mới bổ sung JIT Compiler giúp PHP 8.0 đạt hiệu suất cao gấp 1,5 – 2 lần so với PHP 7. Hiệu suất ứng dụng ngang bằng hoặc tốt hơn với PHP 7.4. Trong hai công cụ biên dịch JIT, Tracing JIT hứa hẹn mang đến hiệu suất cao gấp 3 lần trên các điểm chuẩn tổng hợp. Bạn có thể tham khảo Biểu đồ so sánh tốc độ của PHP khi có JIT và không có JIT như hình bên dưới: tinohost-ho-tro-php8Trong đó:
  • bench.php, micro_bech.php, N-body, Mandelbrot đều là các bài test trên ứng dụng PHP đơn giản.
  • Các bài test còn lại, lần lượt test trên các ứng dụng PHP có độ phức tạp tăng dần.
  • Đường màu đen, kẻ dọc ở biểu đồ trên là ngưỡng tối đa khi PHP không sử dụng JIT.
Nhận xét: 
  • Áp dụng JIT chỉ đạt hiệu năng cao với ứng dụng PHP đơn giản.
  • Ngược lại, JIT không mang lại nhiều ưu điểm với các ứng dụng PHP phức tạp, sử dụng các Framework, CMS phổ biến như WordPress, Symfony, …

#6. Toán tử Nullsafe (Nullsafe operator)

Với các phiên bản PHP trước, để tránh lỗi, ta thường kiểm tra giá trị có khác null hay không trước khi truy cập. Nullsafe operator của PP 8.0 cho phép bạn truy cập vào giá trị của một thuộc tính ở giá trị null mà không bị lỗi. Sử dụng một chuỗi các cuộc gọi với toán tử nullsafe mới có thể được xem là phương án thay thế cho điều kiện kiểm tra null. Khi đánh giá một phần tử trong chuỗi fails, quá trình thực thi của toàn bộ chuỗi sẽ bị hủy bỏ. Lúc này, toàn bộ chuỗi được gán là null. Thay vì: $startDate = $booking->getStartDate(); $dateAsString = $startDate ? $startDate->asDateTimeString() : null; Bạn sẽ: $dateAsString = $booking->getStartDate()?->asDateTimeString();

#7. Biểu thức đối sánh (Match expression)

Tương tự như switch, Match expression là một biểu thức, kết quả có thể được lưu trữ trong một biến hoặc được trả về. Các nhánh so sánh chỉ hỗ trợ các biểu thức một dòng và không cần dấu ngắt để kết thúc lệnh. Match có thể kết hợp các điều kiện, sử dụng so sánh kiểu nghiêm ngặt và không thực hiện bất kỳ kiểu ép buộc nào.

tinohost-ho-tro-php8#8. Nhất quán lỗi cho các chức năng nội bộ (Consistent type errors for internal functions)

Các hàm do người dùng định nghĩa trong PHP sẽ đưa ra TypeError. Trong khi đó, các hàm nội bộ sẽ phát ra cảnh báo và trả về null. Từ phiên bản PHP 8.0, hành vi của các hàm nội bộ đã được thực hiện nhất quán. Nếu xác thực các tham số không thành công, các chức năng nội bộ sẽ đưa ra Exception. Hiểu cách khác, những cảnh báo liên quan đến check kiểu dữ liệu parameter, sẽ được PHP chuyển đổi thành Exception. tinohost-ho-tro-php8Còn nhiều tính năng đã được cải tiến, mời bạn trải nghiệm và chia sẻ với TinoHost nhé! Mọi thắc mắc và góp ý liên quan, xin vui lòng liên hệ ngay TinoHost để được tư vấn chi tiết hoặc Fanpage để cập nhật những thông tin mới nhất. Với bề dày kinh nghiệm hơn 5 năm cung cấp hosting, dịch vụ cho thuê máy chủ, các dịch vụ liên quan đến tên miền và bảo mật website, hãy để TinoHost đồng hành cùng bạn trên con đường khẳng định thương hiệu trên bản đồ công nghệ toàn cầu!
  • Website:

Hồng Nhi

Content Manager

Chị Hồng Nhi, "người giữ lửa" đứng sau wiki.tino.org, là một Content Manager tài năng với hành trình sự nghiệp đầy cảm hứng. Tốt nghiệp cử nhân Ngữ văn Anh năm 2017, cử nhân Ngữ văn Nga năm 2019 và Thạc sĩ Quan hệ Quốc tế năm 2024 tại trường Đại học KHXH&NV - ĐHQG TP.HCM, chị sở hữu nền tảng kiến thức vững chắc cùng kinh nghiệm dày dặn trong lĩnh vực truyền thông.Vốn xuất thân từ "xã hội" nhưng với niềm đam mê sáng tạo nội dung giá trị, chị đã "lấn sân" sang lĩnh vực công nghệ và nhanh chóng khẳng định bản thân. Với phương châm "diễn giải cái khó hiểu nhất bằng cách dễ hiểu nhất", chị đã chinh phục độc giả bằng những bài viết blog công nghệ súc tích, dễ hiểu và hữu ích. Đồng hành cùng TinoHost từ những ngày đầu thành lập, chị Hồng Nhi hiện là Content Manager, người trực tiếp quản lý và vận hành wiki.tino.org cùng nhiều website uy tín khác.

Xem thêm bài viết

Bài viết liên quan

CÔNG TY CỔ PHẦN TẬP ĐOÀN TINO
Trụ sở chính: L17-11, Tầng 17, Tòa nhà Vincom Center, Số 72 Lê Thánh Tôn,  Phường Bến Nghé, Q. 1, TP. Hồ Chí Minh

Văn phòng kinh doanh: Số 42 Trần Phú, Phường 4, Quận 5, TP HCM
GPKD số 0315679836 do Sở KH và ĐT TP Hồ Chí Minh cấp
Hotline: 0364 333 333
Góp ý/Phản ánh dịch vụ: 0933 000 886