PHP 7: 10 điều bạn cần biết
Bạn là một lập trình viên phát triển website hay là chủ một trang web? uWebsite của bạn đang sử dụng một trong các hệ thống quản lý nội dung (CMS) dựa trên PHP như WordPress, Drupal, Joomla hoặc Magento? Nếu vậy thì tôi có những tin tốt dành cho bạn:PHP 7 tính năng hoàn chỉnh ở phiên bản beta mới được phát hành gần đây. Phiên bản 7.0.0 này chứa rất nhiều tính năng rất tuyệt, vì vậy chúng tôi đã quyết định dành hẳn một bài viết này để nói về nó.
Lưu ý rằng PHP 7 vẫn đang trong giai đoạn phát triển, vì vậy đừng sử dụng nó trong môi trường production cho tới tháng 11 khi mà phiên bản chính thức được phát hành. Nếu - như một người dùng trong tương lai - bạn muốn đóng góp vào quá trình phát triển đó, thì bạn có thể giúp đỡ bằng cách tải về phiên bản beta mới nhất, thử vọc vậy với nó trong môi trường kiểm thử của bạn và báo cáo các bug mà bạn tìm thấy trong suốt quá trình kiểm thử đó. Để biết khi nào thì phiên bản beta tiếp theo sẽ được phát hành, bạn có thể xem thời gian biểu của dự án ở đây.
Sau đây chúng ta sẽ cùng điểm qua những điểm nổi bật của PHP 7 nhé!
1. Tên là PHP 7 (không phải 6)
Phiên bản ổn định hiện nay đang được sử dụng là phiên bản PHP 5.6. Sau một số tranh luận thì nhóm phát triển đã quyết định họ sẽ bỏ qua cái tên PHP 6 cho phiên bản lớn tiếp theo. PHP 6 đã tồn tại trong quá khứ như một dự án thử nghiệm nhưng không bao giờ đạt đến giai đoạn trở thành một phiên bản hoàn chỉnh.
Để tránh việc người dùng sẽ bị lẫn lộn giữa phiên bản thử nghiệm trước đó và bản phát triển mới nhất này, thì bản phát hành mới sẽ mang tên PHP 7.
2. Sử dụng Zend Engine hoàn toàn mới
Zend engine đã tạo ra sức mạnh cho PHP từ năm 1999 khi nó được giới thiệu với bản phát hành mới PHP 4. Zend - bạn đừng nhầm lẫn với Zend Framework - là một engine thực thi mã nguồn mở được viết bằng C để thông dịch ngôn ngữ PHP. Loạt PHP 5.X hiện tại sử dụng Zend Engine II tăng cường chức năng của engine ban đầu, bổ sung thêm một mô hình đối tượng mở rộng và nâng cao hiệu suất thực thi đáng kể cho ngôn ngữ này.
PHP 7 có một phiên bản engine hoàn toàn mới có tên gọi là PHP#NG (Next Generation).
Tốc độ tăng gấp đôi
Ưu điểm dễ nhận biết nhất của engine mới PHPNG là sự cải thiện hiệu suất đáng kể. Đội ngũ phát triển của PHPNG đã tái cấu trúc Zend Engine, đáng chú ý là tối ưu hóa việc sử dụng bộ nhớ và bổ sung thêm một bộ biên dịch just-in-time (JIT) cho phép biên dịch vào thời điểm chạy chứ không phải trước khi thực hiện.
Kết quả thu được ra sao? Bạn có thể thấy bảng so sánh tốc độ thực thi như hình dưới đây được cung cấp bởi Zend Performance Team. Bằng cách sử dụng PHP 7 không chỉ giúp code của bạn thực thi nhanh hơn mà bạn cũng sẽ cần ít máy chủ hơn để phục vụ cùng một số lượng user.
4. Dễ dàng hơn trong việc quản lý lỗi
Ít nhất cũng phải nói rằng, việc kiểm soát và có khả năng bắt các fatal error chưa bao giờ là công việc dễ dàng đối với các lập trình viên PHP. Engine Exceptions mới sẽ cho phép bạn thay thế những loại lỗi này với các ngoại lệ (exception). Nếu ngoại lệ không bắt được thì PHP sẽ tiếp tục trả về các fatal error giống như các phiên bản PHP 5.X hiện hành.
Các đối tượng \EngineException mới không mở rộng \Exception Base Class. Điều này đảm bảo khả năng tương thích ngược và các kết quả từ hai kiểu exception khác nhau trong việc quản lý lỗi: truyền thống và engine exceptions.
Để cho phép các lập trình viên có thể bắt được cả hai, PHP 7 giới thiệu một Parent Class mới dưới cái tên là \BaseException.
5. Hỗ trợ các hệ thống Windows 64-Bit
PHP là một thành viên nổi bật của stack LAMP (Linux - Apache - MySQL - PHP), có nghĩa môi trường gốc của nó là Linux - nhưng bạn cũng có thể chạy nó trên một hệ thống Windows. Các phiên bản PHP 5.X chưa cung cấp số integer 64-bit hoặc hỗ trợ các tập tin lớn, vì vậy cho đến tận bây giờ các bản build x64 đã được coi là thử nghiệm.
PHP 7 sẽ thay đổi điều này với việc giới thiệu nhất quán hỗ trợ 64-bit nghĩa là cả các số nguyên 64-bit và các file lớn sẽ được hỗ trợ, cho phép bạn tự tin chạy ngôn ngữ này trên hệ điều hành Windows 64-bit của bạn trong tương lai.
6. Các toán tử mới Spaceship và Null Coalescing
Toán tử Spaceship chạy dưới tên chính thức là Combined Comparison Operator (toán tử so sánh kết hợp). Ký hiệu của toán tử mới trông như thế này: <=> (giống như một con tàu vũ trụ đơn giản, nếu bạn chịu khó tưởng tượng).
Toán tử spaceship này trả về 0 nếu cả hai toán hạng bằng nhau, 1 nếu toán hạng bên trái lớn hơn, và -1 nếu toán hạng bên phải lớn hơn. Nó cũng được gọi là một toán tử so sánh three-way, và đã tồn tại trong những ngôn ngữ lập trình phổ biến khác như Perl và Ruby.
Toán tử Null Coalescing được thể hiện bằng hai dấu chấm hỏi (??). Bạn có thể sử dụng nó khi muốn kiểm tra xem liệu một cái gì đó có tồn tại và trả về một giá trị mặc định hay không. Toán tử coalesce trả về kết quả của toán hạng đầu tiên nếu nó tồn tại và không null, và trả về toán hạng thứ hai trong các trường hợp khác.
Đây là cách mà toán tử mới này giảm được thời gian với những việc khai báo cơ bản:
7. Cho phép khai báo kiểu chính xác
Bạn đã bao giờ muốn ngăn chặn các giá trị trả về không mong muốn bằng cách khai báo giá trị trả về của một function? Vâng, bản PHP 7 mới này cho phép các lập trình viên nâng cao chất lượng code của họ với sự giúp đỡ của các khai báo kiểu trả về.
Hình dưới đây mô tả một trường hợp rất đơn giản nơi mà function foo() được giả thiết là trả về một mảng. Bạn hãy tìm thêm những ví dụ phức tạp hơn ở link này nhé!
Để mở rộng các tính năng này nhiều hơn, PHP 7 giới thiệu 4 kiểu khai báo mới cho các kiểu vô hướng: int, float, string và bool. Những kiểu vô hướng mới này cho phép các lập trình viên biểu thị rằng họ đang mong đợi các giá trị integer, float, string, hoặc boolean được trả về. Các kiểu vô hướng mới được giới thiệu bởi PHP 7 cũng sẽ được hỗ trợ bởi Type Hints cho phép các lập trình viên tập trung vào kiểu của các tham số kể từ các bản PHP 5.X.
8. Bổ sung thêm các class Anonymous
PHP 7 cho phép bạn sử dụng các class vô danh (anonymous), đây là một đặc trưng đã có trong những ngôn ngữ lập trình hướng đối tượng khác như C# và Java. Một class anonymous là một class không có tên. Đối tượng mà nó khởi tạo có cùng chức năng như một đối tượng của một lớp có tên.
Cú pháp giống như chúng ta sử dụng trong các class PHP truyền thống, chỉ có thiếu cái tên class. Nếu các lớp vô danh (anonymous classes) được sử dụng tốt, chúng có thể làm tăng tốc độ thực thi. Các lớp vô danh là tuyệt vời khi một class chỉ được sử dụng một lần trong suốt quá trình thực thi và trong những trường hợp một class không cần phải được ghi tài liệu.
9. Thuận tiện khi Imports từ cùng Namespace
Đặc trưng mới Group Use Declarations sẽ là một món quà đáng giá dành cho những ai muốn import nhiều class từ cùng namespace. Cú pháp mới cắt bỏ sự rườm rà, làm cho code của bạn trở nên gọn gàng và dễ nhìn hơn, và giúp tiết kiệm cho bạn rất nhiều thời gian ngồi gõ code.
Nó cũng sẽ giúp việc đọc code và debug trở nên dễ dàng hơn, việc khai báo sử dụng group giúp bạn xác định các import thuộc về cùng module.
10. Loại bỏ các chức năng cũ không còn được hỗ trợ
Mục tiêu của PHP 7 là nhằm giải phóng không gian để cho phép phát triển, vì vậy nó là cần thiết để giải thoát khỏi nhiều chức năng bị phản đối và cũ, các Server API và các extension không được hỗ trợ. Nếu bạn muốn xem chi tiết thì hãy click đây và đây nữa nhé!
Tất cả các mục bị gỡ bỏ đã không được tán thành một thời gian trong PHP 5, vì vậy hầu như bạn đã không sử dụng chúng trong một thời gian dài. Tuy nhiên cũng xin lưu ý nếu bạn có một ứng dụng đang chạy kế thừa từ các phiên bản PHP cũ hơn thì bản PHP 7 này có thể sinh ra lỗi trên ứng dụng của bạn.
Đây là bài viết được dịch từ blog Hongkiat.com
Theo TechMaster
Các tin mới hơn:
Hướng dẫn tích hợp giao diện trang quản trị SB Admin 2 vào Laravel 5.8.
Hướng dẫn tích hợp Google ReCaptcha v2 vào Laravel bằng curl.
Học lập trình React JS trong vòng 5 phút.
Sử dụng trình soạn thảo CKeditor tích hợp CKFinder với Laravel.
Hướng dẫn cài đặt Apache, PHP, MySQL, PHPMyAdmin trên Windows 10 và cấu hình SendMail.
Các tin cũ hơn:
Giải mã về 3 loại lập trình web: Front-End, Back-End và Full Stack.
Thủ thuật giúp Android 5.0 Lollipop hoạt động dễ dàng trên PC.
Sử dụng Background Worker trong lập trình Windows Form với C#.
Học Java thì để làm gì.
Cách tối ưu WordPress hay nhất.