0

PHP 7: 10 điều bạn cần biết

Bạn có phải là một web developer hay là chủ sở hữu một trang web? Website của bạn đang chạy trên các PHP CMS như WordPress, Drupal, Joomla hay Magento? Tôi có tin tốt lành cho bạn đây: Các tính năng hoàn thiện trên bản beta của PHP 7 hoàn toàn mới đã được phát hành gần đây. Phiên bản 7.0.0 có rất nhiều tính năng hấp dẫn nên chúng tôi quyết định dành riêng một bài giới thiệu về nó. Nhưng trước hết, chúng ta cần lưu ý một số thứ.

Chú ý rằng PHP 7 vẫn còn đang trong giai đoạn phát tiển, thế nên đừng sử dụng nó vào sản phẩm thật, cho đến tháng 11, khi bản chính thức phát hành. Nếu bạn muốn chia sẻ công sức vào quá trình phát triển, bạn có thể giúp đỡ bằng cách tải về bản beta mới nhất, vọc phá đôi chút với nó trên môi trường thử nghiệm và báo cáo lỗi lại các lỗi mà bạn tìm thấy. Để theo dõi khi nào bản beta kế tiếp phát hành, đây là thời gian biểu.

Còn bây giờ, thử dạo một vòng xem PHP 7 thế nào!

1. Cái tên PHP 7 (không phải 6)

Phiên bản ổn định hiện nay sử dụng số phiên bản là PHP5.6. Sau một số tranh chấp, nhóm phát triển quyết định, họ sẽ bỏ qua tên PHP 6 cho phiên bản tiếp theo. PHP 6 thực sự tồn tại trong quá khứ chỉ là một dự án thử nghiệm, nhưng không bao giờ đạt đến giai đoạn sản xuất.

Để tránh người dùng nhầm lẫn giữa các bản thử nghiệm trước đây với phiên bản phát triển mới nhất, bản phát hành chính thức mới sẽ chạy theo tên gọi PHP7.

Image itechnicalblog.com

IMAGE: itechnicalblog.com

2. Đi kèm một cỗ máy đáng gờm mới: PHPNG

Zend engine bắt đầu hỗ trợ PHP từ 1999 khi nó được gới thiệu cùng với bản PHP 4 mới lúc đó. Zend –  không nhầm lẫn với Zend Framework – là một engine thông dịch PHP, mã nguồn mở viết bằng ngôn ngữ C. Các phiên bản PHP5.X sử dụng Zend Engine II, được tăng cường chức năng so với phiên bản đầu tiên, được bổ sung thêm mô hình đối tượng mở rộng và cải thiện đáng kể hiệu năng của ngôn ngữ.

PHP 7 nhận được một nhãn hiệu mới cho phiên bản engine tiếp theo, dưới tên mã PHP#NG (PHP Next Generation)

phpng

IMAGE: A Talk on ZendCon-2014

3. Tốc độ gấp đôi

Ưu điểm dễ nhận biết nhất của engine PHPNG mới là sự cải thiện hiệu suất đáng kể. Đội ngũ phát triển của PHPNG tái cơ cấu Zend Engine, sử dụng bộ nhớ tối ưu hóa đáng kể và thêm vào kỹ thuật just-in-time (JIT) cho phép việc biên dịch diễn ra khi cần chạy đoạn code đó chứ không phải biên dịch toàn bộ mã nguồn trước khi thực hiện.

Kết quả ư? Bạn có thể thấy hiệu năng benchmarks cung cấp bởi Zend Performance Team ở bên dưới. Khi sử dụng PHP7, không chỉ code của bạn sẽ thực thi nhanh hơn mà còn tốn ít tài nguyên hơn để phục vụ cùng một số lượng người dùng.

wp-php7-performance

IMAGE: Zend.com

frameworks-php7-performance

IMAGE: Zend.com

4. Xử lý lỗi thuận tiện hơn

Rõ ràng, điều khiển và “bắt” lỗi chưa bao giờ dễ dàng đối với coder PHP. Các Engine Exception – xử lý ngoại lệ – mới sẽ cho phép bạn thay thế những lỗi kiểu này với các trường hợp ngoại lệ. Nếu ngoại lệ không phù hợp, PHP sẽ tiếp tục trả về cùng mã lỗi fatal erros như các phiên bản 5.X.

Các đối tượng \EngineException không kế thừa từ lớp cơ bản \Exception. Điều này đảm bảo tính tương thích ngược và kết quả trong hai kiểu xử lý lỗi ngoại lệ: kiểu truyền thống (5.X) và engine exceptions (7.X).

Để khuyến khích lập trình viên dùng cả 2, PHP 7 giới thiệu một lớp chia sẻ cha dưới cái tên \BaseException.

5. Hỗ trợ hệ thống Windows  64-Bit

PHP là một thành viên của LAMP Stack, do đó đương nhiên nó ưu tiên môi trường Linux –  Nhưng không có nghĩa là không thể chạy trên Windows. Các phiên bản 5.x chưa hỗ trợ số nguyên 64-bit hay file dung lượng lớn, cho đến tận bây giờ, các bản build x64 cũng chỉ được xem là thử nghiệm.

PHP 7 thay đổi điều này, giới thiệu hỗ trợ 64-bit, có nghĩa là cả số số nguyên 64-bit và các file dung lượng siêu lớn sẽ được hỗ trợ, cho phép bạn tự tin chạy ngôn ngữ này trên hệ thống Windows 64-bit trong tương lai.

win-x64-support

6. Giới thiệu hai toán tử mới “Phi thuyền” và “Hợp nhất rỗng”

Toán tử “phi thuyền” – chạy dưới cái tên chính thức là 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: <=>  (kiểu như một cái phi thuyền hay đĩa bay gì đó, nếu bạn tưởng tượng đúng cách :v )

Toán tử “phi thuyền” trả về 0 nếu hai vế bằng nhau, 1 nếu vế trái lớn hơn, và -1 nếu về phải lớn hơn. Nó cũng được gọi là Toán Tử So Sánh Ba Trạng Thái,  toán tử này đã xuất hiện từ lâu trong các ngôn ngữ phổ biến như Perl hay Ruby.

spaceship-operator

IMAGE: Wiki.PHP.net

Toán tử “Hợp nhất rỗng” được ký hiệu với hai dấu hỏi ( ?? ). Bạn có thể sử dụng nó khi bạn muốn kiểm tra thứ gì đó có tồn tại thì trả về giá trị chính nó, không thì trả về giá trị mặc định.

Dưới đây mô tả toán tử mới giảm giúp bạn tiết kiệm thời gian như thế nào:

7. Cho phép khai báo chính xác kiểu dữ liệu trả về

Có bao giờ bạn muốn tránh dữ liệu trả về không mong muốn bằng cách khai báo kiểu dữ liệu của hàm? Tuyệt vời, PHP 7 cho phép lập trình viên tăng cường chất lượng code của họ với việc khai báo kiểu dữ liệu trả về.

Đoạn code bên dới mô tả đơn giản trường hợp khai báo chính xác dữ liệu mong muốn trả về của hàm foo() là mảng. Xem thêm nhiều ví dụ phức tạp ở đây.

Để tăng cường tính năng này hơn nữa, PHP 7 giới thiệu 4 kiểu khai báo cho các kiểu vô hướng: int, float, string, và bool. Các kiểu dữ liệu vô hướng cho phép lập trình viên biểu thị rằng họ mong đợi dữ liệu trả về là integer, float, string hay boolean. Các kiểu dữ liệu vô hướng mới giới thiệu trong PHP 7 cũng sẽ hỗ trợ trong khai báo kiểu dữ liệu cho tham số đầu vào, cho phép lập trình viên ràng buộc kiểu dữ liệu của tham số hàm từ những phiên bản 5.X.

8. Thêm vào các lớp ẩn danh

PHP 7 cho phép bạn sử dụng các lớp ẩn danh – anonymous classes, đã sớm có mặt trong các ngôn ngữ hướng đối tượng khác như C# hay Java. Một lớp ẩn danh là một class không có tên. Các thực thể của lớp đối tượng này vẫn có đầy đủ chức năng/tính năng như một thực thể của các lớp có tên.

Cú pháp tương tự như sử dụng lớp PHP truyền thống, chỉ thiếu khai báo tên. Nếu sử dụng tốt các lớp ẩn danh, chúng có thể giúp tăng tốc coding cũng như thời gian thực thi. Các lớp ẩn danh rất hợp lý khi cần dùng một class chỉ một lần duy nhất trong thời gian thực thi, hoặc trong trường hợp class không cần phải có tài liệu mô tả.

9.  Thuận tiện khi import từ các Namespace tương tự nhau.

Tính năng “Khai Báo Nhóm Sử Dụng” mới sẽ là một món quà quí giá cho bạn, người muốn import nhiều lớp có namespace tương tự nhau. Cú pháp mới cắt giảm bớt rườm rà, làm cho code của bạn gọn gàng và dễ nhìn hơn, cũng như tiết kiệm thời gian gõ phím hơn.

Điều này cũng giúp code trở nên dễ đọc và debug hơn, “khai báo sử dụng nhóm”giúp bạn nhanh chóng nhận diện được các thành phần import trong cùng module.

10. Dọn phòng nào!

Mục tiêu của PHP 7 là giải phóng thật nhiều bộ nhớ để cải thiện hiệu năng, do đó cần thiết phải loại bỏ những chức năng cũ, không còn phù hợp trên các hệ thống API Server hay extension hiện nay. Nếu bạn muốn kiểm tra chi tiết, xem tại đâytại đây.

Tất cả các mục bị gỡ bỏ đều là các chức năng đã bị dừng và ngưng hỗ trợ từ PHP 5, do đó có thể lâu lắm rồi bạn cũng không động tới chúng. Tuy nhiên xin lưu ý, nếu bạn có một ứng dụng, là di sản để lại từ các phiên bản PHP cũ hơn, PHP 7 có khả năng sẽ không hoạt động.

clean-up

(Vietnamese article translate from hongkiat.com)

Hoàng Tựa

Yêu thích lập trình web và tạo ra những thứ đẹp đẽ.

Leave a Reply

Your email address will not be published. Required fields are marked *