Di chuyển php 5 sang php 8
TL;DR. Nhiều ứng dụng PHP vẫn đang chạy trên PHP 5. x, chưa sẵn sàng để tận dụng tối đa các tính năng tuyệt vời mà PHP 7 cung cấp. Rất nhiều nhà phát triển đã không thực hiện chuyển đổi vì lo ngại nhất định về các vấn đề tương thích, thách thức khi di chuyển và cảm giác khó xử kỳ lạ rằng việc di chuyển sẽ lấy đi một lượng lớn thời gian của họ. Trong phần đầu tiên của hướng dẫn này, chúng ta đã học cách thiết lập môi trường phát triển PHP 7. Trong phần thứ hai của hướng dẫn này, chúng ta đã thảo luận rộng rãi về tất cả các tính năng mới mà PHP 7 cung cấp cũng như cấu trúc ngôn ngữ và các tính năng đã bị xóa hoặc không dùng nữa. Lần này, chúng tôi sẽ chỉ cho bạn cách bạn có thể tận dụng tất cả các tính năng mới của PHP 7 khi di chuyển và cả những công cụ sẽ giúp quá trình này diễn ra suôn sẻ Show
Bạn cần lưu ý rằng phần lớn, PHP 5. xcode không thể chạy trên PHP 7. Trong PHP 7 có một số thay đổi không tương thích ngược nên các ứng dụng xây dựng bằng PHP 5. x sử dụng các hàm và cấu trúc ngôn ngữ đã bị xóa hoặc thay đổi triển khai nội bộ mạnh mẽ sẽ gây ra lỗi khi cố gắng chạy trên PHP 7 Công cụ hỗ trợ di cưMột trong những phần khó chịu nhất trong công việc của chúng tôi với tư cách là nhà phát triển phần mềm là phải làm việc trên các cơ sở mã cũ lớn. Trong trường hợp bạn được giao nhiệm vụ di chuyển một PHP 5 lớn. x có lẽ đã tồn tại được khoảng 10 năm, bạn sẽ xử lý nó như thế nào? Cách di chuyển dễ dàng và rõ ràng nhất là ban đầu sao chép ứng dụng trên máy cục bộ của bạn, cài đặt PHP 7 và chạy ứng dụng. Bạn có thể xem qua các lỗi và cảnh báo ngừng hoạt động được hiển thị trong thiết bị đầu cuối và sửa chúng theo cách thủ công từng bước bằng cách kết hợp các tính năng của PHP 7. Điều này có thể rất khó khăn và tốn thời gian. Tại sao chúng ta không thể tự động hóa quá trình này? Hiện tại không có công cụ nào thực hiện chuyển đổi tự động 100% PHP 5 của bạn. x sang PHP 7, nhưng những công cụ dưới đây sẽ giúp quá trình di chuyển của bạn trở nên dễ dàng hơn PHP 7 THÁNG 3php7mar là công cụ dòng lệnh tạo báo cáo trên PHP 5. x codebase dựa trên khả năng tương thích PHP 7. Các báo cáo chứa số dòng, các vấn đề được lưu ý và các bản sửa lỗi được đề xuất cùng với các liên kết tài liệu Ghi chú. Tool không fix code. Nó chỉ cung cấp cho bạn các báo cáo về tất cả các tệp PHP trong cơ sở mã của bạn. sửa chữa vui vẻ Trình kiểm tra tương thích PHP 7php7cc là một công cụ dòng lệnh được thiết kế để thực hiện chuyển đổi từ PHP 5. 3 - 5. 6 đến PHP 7 thực sự dễ dàng. báo cáo php7cc
Phanphan là một bộ phân tích tĩnh cho PHP cố gắng chứng minh tính không đúng thay vì tính đúng. Phan tìm kiếm các vấn đề phổ biến và xác minh tính tương thích của loại trên các hoạt động khác nhau khi thông tin về loại có sẵn hoặc có thể được suy ra. Phan kiểm tra rất nhiều thứ bao gồm khả năng tương thích ngược PHP7/PHP5 phpto7aidphpto7aid là một công cụ được sử dụng để xác định mã PHP 5 sẽ không hoạt động trong PHP 7. Nó cố gắng hỗ trợ bạn nhiều nhất có thể trong việc giải quyết những vấn đề này, bằng cách cung cấp giải pháp chính xác hoặc đưa ra gợi ý về cách giải quyết vấn đề Kiểm tra tính tương thích của PhpStorm PHP 7PhpStorm là một PHP IDE rất thông minh, được phát triển bởi Jetbrains Nguồn. phản lực. comPhpStorm 10 đi kèm với công cụ Kiểm tra tương thích PHP 7 có thể cho bạn biết chính xác mã nào sẽ gây ra lỗi nếu bạn đang chạy PHP7 Nguồn. phản lực. comHình ảnh bên dưới hiển thị một ví dụ điển hình về một ứng dụng có các lớp có tên được đặt trước trong PHP 7. Chọn tùy chọn Run Inspection By Name từ menu Code, sau đó chọn phần PHP 7 Compatibility sẽ cho bạn kết quả như bên dưới Nguồn. phản lực. comXây dựng ứng dụng PHP5Chúng tôi sẽ xây dựng ứng dụng PHP 5 đơn giản đầu tiên rất nhanh. Đây là phạm vi của ứng dụng
Xây dựng ứng dụng này sẽ yêu cầu chúng tôi thiết lập cơ sở dữ liệu để lưu trữ người dùng, viết mã đăng ký và đăng nhập của chúng tôi và quản lý phiên người dùng. Bây giờ, chúng tôi sẽ không sử dụng bất kỳ khung nào vì chúng tôi không muốn bất kỳ hình thức chi phí nào. Thông thường, việc xây dựng ứng dụng này sẽ mất rất nhiều thời gian và thiết lập nhưng có một dịch vụ mà chúng tôi có thể sử dụng để loại bỏ rắc rối. Oh, yeah, Auth0 để giải cứu
Tạo và định cấu hình ứng dụng khách Auth0Điều đầu tiên chúng ta cần làm là đăng ký tài khoản Auth0 miễn phí và định cấu hình ứng dụng khách mới
Bây giờ, hãy chuyển đến tab ứng dụng khách và tạo một tab mới, chọn 'Ứng dụng web thông thường' làm loại ứng dụng khách. Hãy đặt tên cho nó giống như 'Ứng dụng web PHP cơ bản' Bây giờ chúng tôi đã tạo ứng dụng khách của mình, chúng tôi cần lưu ý ba thuộc tính. 7, 8 và 9. Tất cả chúng có thể được tìm thấy trên tab 0 của ứng dụng khách mà chúng tôi vừa tạoCấu hình cuối cùng mà chúng tôi cần thực hiện, trước khi cập nhật mã của mình, là thêm 1 dưới dạng 2 trên ứng dụng khách Auth0 của chúng tôiXây dựng ứng dụngTạo một tệp 3 trong một thư mục mới và thêm tệp này vào đó như vậy
nhà soạn nhạc. json Tất cả những gì chúng ta cần là gói 4 để đọc các biến môi trường và gói 5 giúp dễ dàng sử dụng dịch vụ Auth0Tạo thư mục 6 bên trong thư mục thêm tệp 7 vào đó
ứng dụng. css Hãy tiếp tục và tạo một tệp 8 bên trong thư mục như vậy
Tạo tệp 9. Tệp này sẽ chứa thông tin đăng nhập Auth0 của chúng tôi 6Ghi chú. Thay thế các giá trị này bằng 60, 61 và 62 từ bảng điều khiển Auth0 của bạnThêm giá trị của 63 vào URL gọi lại được phép trong Cài đặt của bạn trên bảng điều khiểnbảng điều khiển Auth0. Url gọi lại được phépNgoài ra, đừng quên thêm cùng một giá trị vào Nguồn gốc được phép (CORS) trong Cài đặt của bạn trên bảng điều khiển Chúng tôi cần một tệp để gọi thư viện 64 và tải các giá trị mà chúng tôi đã gửi trong tệp 9. Tạo một tệp mới, dotenv-loader. php như vậy 3dotenv-loader. php Cuối cùng, hãy tạo tệp 66 nơi chứa tất cả logic ứng dụng của chúng ta. Như tôi đã đề cập trước đó, nó chỉ là một ứng dụng cơ bản, vì vậy đừng lo lắng về việc phân chia mối quan tâmĐây là cách tập tin sẽ trông như thế nào 5Thư giãn nào, cùng nhau phân tích code nào 6Đây là nơi chúng tôi yêu cầu trình tải dotenv và trình tải tự động soạn thảo. Trình tải tự động giúp chúng tôi có thể nhập bất kỳ lớp nào từ các gói PHP được cài đặt trong ứng dụng 7 67 là lớp xác thực Auth0. Nó có các phương thức để truy xuất hồ sơ của người dùng khi đăng nhập. 68, 69, 30, 31 là các biến sẽ chứa các giá trị nhận được từ tệp 9 với sự trợ giúp của phương thức 33Sau đó, chúng tôi chuyển sang khởi tạo lớp 34Phương thức 35 theo mặc định lưu trữ thông tin người dùng trong phiên làm việc PHP và chúng tôi cũng đã hướng dẫn phương thức này lưu 36 và 37 38 là URL ủy quyềnMảng 39 chứa một số ký tự từ Chiến tranh giữa các vì sao. Sau này trong mã, người dùng sẽ được gán một tên mã ngẫu nhiên từ mảng này 50 lấy thông tin người dùng 2Điều này kiểm tra xem người dùng có gửi yêu cầu đăng xuất hay không, xóa phiên và chuyển hướng người dùng quay lại trang chủ 3Chúng tôi đang sử dụng Trang đăng nhập tập trung của Auth0 và chúng tôi cũng sử dụng jQuery để gọi các phương thức và xử lý sự kiện nhấp vào nút
0Đã sử dụng bootstrap và phông chữ tuyệt vời để làm đẹp 1Trong đoạn code trên, nếu 51 không được đặt thì có nghĩa là người dùng chưa đăng nhập, vì vậy chúng tôi hiển thị nút đăng nhập. Nếu người dùng đã đăng nhập, thì chúng tôi sẽ lấy thông tin của người dùng và hiển thị thông tin đó cùng với nút 52Lưu ý bảo mật quan trọng. Nếu bạn có API cho ứng dụng của mình, thì không nên sử dụng 37 để bảo mật API; . Bạn có thể đọc về cách triển khai xác thực API với Auth0 với quyền ngầm địnhChạy ứng dụngChuyển đến thiết bị đầu cuối của bạn và chạy 55 để cài đặt các phụ thuộc. Tiếp theo, chạy PHP 5 của bạn. máy chủ x. Nếu máy chủ PHP của bạn có thể truy cập được từ thiết bị đầu cuối, thì bạn có thể chạy nó qua 56Mở trình duyệt của bạn và kiểm tra ứng dụng. Trang chỉ mục sẽ trông như thế này Trang mục lụcBây giờ, đăng ký và đăng nhập Đăng nhậpKhi bạn đăng nhập, bạn sẽ được gán tên mã Chiến tranh giữa các vì sao như vậy Đăng nhậpỨng dụng của chúng tôi hiện đang chạy thành công trên PHP 5. máy chủ x. Bạn có thể lấy mã nguồn từ Github để đảm bảo mọi thứ hoạt động như mong đợi Di chuyển ứng dụng PHP5 của chúng tôi sang PHP7Chúng tôi hiện đang chạy PHP 5. ứng dụng x. Hãy chuyển nó sang PHP 7. Điều tốt là hầu hết các lần bạn có thể không phải thay đổi bất cứ điều gì trong cơ sở mã. Hãy xem điều đó có đúng với ứng dụng này không Nâng cấp máy chủ của bạn lên ít nhất là PHP 7. 0. 0 và chạy lại ứng dụng này Máy chủ PHP 7 đang chạyỨng dụng chạy trên PHP 7 mà không có bất kỳ lỗi nàoTuyệt vời, bây giờ ứng dụng đầu tiên của chúng tôi đang chạy thành công trên PHP 7 Làm việc với ứng dụng thứ haiỨng dụng PHP thứ hai mà chúng ta sẽ xem qua là một API. Nó là một API Chuck Norris đơn giản. Nó đã được xây dựng sẵn với PHP 5 Sao chép nó từ Github và chạy 55 để cài đặt tất cả các phụ thuộc. Sau đó chạy ứng dụng trên PHP 5. máy chủ xMở Postman và kiểm tra API như vậy Chạy 58 như vậyAPI hiển thị danh mụcChạy 59 như vậyAPI hiển thị các câu chuyện cười ngẫu nhiênỨng dụng đang hoạt động tốt, không có lỗi Sử dụng các tính năng của PHP 7 trong Ứng dụng thứ haiHãy cấu trúc lại ứng dụng này và tích hợp một số tính năng của PHP 7 Đây là cấu trúc thư mục của ứng dụng API của chúng tôi tại thời điểm này 2Đây là giao diện của tệp 60 của chúng tôi ngay bây giờ 3Hãy bắt đầu bằng cách thêm các khai báo kiểu trả về của PHP 7 vào các phương thức trong lớp này như sau 4Khai báo kiểu trả về PHP 7 được thêm vào Main. php Một tính năng khác của PHP 7 mà chúng ta có thể thêm vào gợi ý kiểu tham số chức năng. Chúng ta có một phương thức, 61 chấp nhận một 62 là một số nguyênHãy cấu trúc lại phương thức đó, 63. Chúng ta sẽ loại bỏ điều kiện 64 và chỉ gõ tham số 62 như vậy 5Bây giờ nếu bạn cố gắng chuyển một giá trị sang một số nguyên như vậy 6mục lục. php PHP 7 sẽ đưa ra Lỗi Loại như vậy Lỗi loại PHP 7Chúng tôi đã có thể thêm một số tính năng của PHP 7. Ứng dụng này cũng chạy trên máy chủ PHP 7 và mọi thứ đều hoạt động tốt Mã nguồn của phiên bản API PHP 7 có thể được tìm thấy trên 66 trên GitHubMàn biểu diễnPHP 7 chạy trên Zend engine 3 mới. 0, do đó làm cho ứng dụng của bạn có hiệu suất nhanh hơn gấp 2 lần và mức tiêu thụ bộ nhớ tốt hơn 50% so với PHP 5. 6. Nó cũng cho phép bạn phục vụ nhiều người dùng đồng thời hơn mà không cần thêm bất kỳ phần cứng nào Rasmus Ledorf, Người tạo ra PHP và là người phát minh ra mệnh đề LIMIT trong SQL đã thực hiện một số điểm chuẩn với một số dự án PHP phổ biến với các phiên bản PHP khác nhau từ PHP 5. 4 cho đến PHP 7. 0 và cũng được so sánh với HHVM 3. 6. 1 Chúng ta hãy nhìn vào điểm chuẩn. Thông số hộp test Rasmus sử dụng là
Từ các kết quả trên, bạn có thể thấy rằng chúng tôi có thể thực hiện gấp đôi số lượng yêu cầu trong thời gian ngắn hơn trong PHP 7 so với PHP 5 Những thông số kỹ thuật này có thể được tìm thấy trong bài nói chuyện của 67 mà anh ấy đã đưa ra tại Fluent Conf, 2015Kiểm tra các điểm chuẩn sau
Sự kết luậnChúng tôi đã trình bày thành công cách nâng cấp môi trường máy chủ và phát triển của bạn từ PHP 5 lên PHP 7, xem qua các tính năng mà PHP 7 cung cấp và cũng đã di chuyển hai ứng dụng từ PHP 5 sang PHP 7 tiếng kêu. tiếng kêu. Đó là một hành trình làm nổi bật mọi thứ mà PHP 7 cung cấp. PHP đã phát triển vượt bậc trong những năm qua từ một ngôn ngữ đồ chơi thành một ngôn ngữ doanh nghiệp và tốc độ toàn diện Tài liệu hướng dẫn PHP và RFC vẫn là tài liệu tham khảo đầy đủ nhất cho bất kỳ tính năng mới nào của PHP 7. Bạn luôn có thể tận dụng chúng để biết thêm thông tin Tôi có nên chuyển sang PHP 8 không?Tôi có nên nâng cấp lên PHP 8 không? . PHP 8 cung cấp hiệu suất thực thi mã được cải thiện và sẽ mở rộng cũng như cải thiện theo thời gian . Các so sánh tốt hơn sẽ loại bỏ các lỗi thường gặp và các hành vi không mong muốn thường gây khó chịu cho các nhà phát triển PHP.
Có đáng để nâng cấp lên PHP 8 không?Lý do lớn nhất để chuyển sang PHP 8 trước tháng 11 năm 2022 là vì cộng đồng hỗ trợ PHP 7. 4 là kết thúc. Nhưng đó không chỉ là việc di chuyển các phiên bản không cần thiết – PHP 8 mang đến nhiều lợi ích .
Là PHP5. 6 vẫn được hỗ trợ?PHP 5. 6, 7. 0, 7. 1 và 7. 2 cuối đời
. Kể từ ngày 30 tháng 11 năm 2020, PHP 7. 2 đã hết tuổi thọ. End of life means these versions will no longer have security support and could be exposed to unpatched security vulnerabilities. As of November 30, 2020, PHP 7.2 reached its end of life.
Làm cách nào để nâng cấp PHP5 lên PHP7?Mã để nâng cấp từ PHP5 lên PHP7
. Ví dụ. error_reporting(E_ALL ^ E_STRICT); . Tạo một lớp trừu tượng cho các hoạt động cơ sở dữ liệu bằng cách sử dụng tiện ích mở rộng PDO vì PDO hỗ trợ nhiều cơ sở dữ liệu. Set error reporting to E_ALL as below. Eg: error_reporting(E_ALL ^ E_STRICT); Solve all the errors including notice errors and deprecated errors. Create an abstraction layer for database operations by using PDO extension as PDO supports multiple databases. |