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 PhpStorm 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 Hì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 Xâ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ụ Auth0Có thể bạn quan tâmTạ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ểnNgoà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 Bây giờ, đăng ký và đăng nhập Khi 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 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 Tuyệ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ậyChạy 59 như vậyỨ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 Chú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. |
Bài Viết Liên Quan
Bbia 02 giá bao nhiêu?
Chắc hẳn son là một sản phẩm không thể thiếu trong bộ đồ makeup của các chị em. Và hiện nay trên thị trường có rất nhiều dòng son để chị em thỏa mái ...
Làm cách nào để đếm số lần xuất hiện của từng ký tự trong một chuỗi trong JavaScript?
Thông thường trong lập trình, mọi nhà phát triển cần đếm từng lần xuất hiện của một ký tự trong chuỗi hoặc câu trong một số tình huống. Trong bài viết ...
Thay đổi màu chữ trong php
Hôm nay chúng ta sẽ tìm hiểu cách điều chỉnh Font chữ, màu chữ và cỡ chữ sao cho phù hợp với nội dung của trang web, cũng như làm nổi bật một số từ ...
Tuyển dụng bóng đá trường trung học Oregon 2023
Trong vài năm qua, tôi có xu hướng ở lại làn đường của mình. Có nghĩa là chủ yếu thực hiện các lựa chọn có lợi cho Oregon đối với các mục tiêu chính ...
Làm thế nào để bạn trả về một danh sách từ một lớp trong python?
Trong bài học này, bạn sẽ tìm hiểu về các phương thức tích hợp bổ sung, không giống như các phương thức trong bài học trước, có các giá trị trả về.pop() ...
Tại sao vòng lặp while của tôi không hoạt động Python?
Vòng lặp While trong Python được sử dụng để thực thi lặp đi lặp lại một khối câu lệnh cho đến khi một điều kiện nhất định được thỏa mãn. Và khi ...
Dữ liệu có thể được phân loại thành bao nhiêu nhóm trong python
Trong số này, bước tách là đơn giản nhất. Trên thực tế, trong nhiều tình huống, chúng tôi có thể muốn chia tập dữ liệu thành các nhóm và làm gì đó với ...
Python cho AI và ML
Nếu bạn mới bắt đầu làm quen với thế giới trí tuệ nhân tạo (AI), thì Python là một ngôn ngữ tuyệt vời để học vì hầu hết các công cụ đều được ...
Javascript kiểm tra xem số có phải là lũy thừa của 2 không
Mục lụcTrong hướng dẫn này, chúng ta sẽ xem cách kiểm tra xem số có phải là lũy thừa của hai hay khôngCó nhiều cách để kiểm tra xem một số có phải là lũy ...
Bạn có thể biên dịch python thành assembly không?
Tiết lộ. Bài đăng này có thể chứa các liên kết liên kết, nghĩa là khi bạn nhấp vào liên kết và mua hàng, chúng tôi sẽ nhận được hoa hồngBộ xử lý ...
Máy tính công thức Pascals
Chào mừng bạn đến với máy tính tam giác Pascal của chúng tôi, nơi bạn sẽ tìm hiểu cách sử dụng tam giác Pascal, cũng như lý do tại sao bạn nên sử dụng nó ...
3 tỷ Việt Nam bằng bao nhiêu USD
Bộ chuyển đổi Đô la Mỹ/Đồng Việt Nam được cung cấp mà không có bất kỳ bảo hành nào. Giá có thể khác với giá của các tổ chức tài chính như ngân ...
Cách hiển thị dữ liệu json trong bảng html bằng javascript?
Định dạng JSON được sử dụng nhiều để lưu trữ dữ liệu theo cách có cấu trúc. Ngay cả dữ liệu nhận được từ máy chủ cũng ở định dạng JSON. Ở ...
Có bao nhiêu tháng cho đến ngày 4 tháng 8 năm 2023
Có 193 ngày cho đến ngày 4 tháng 8Khoảng thời gian từ ngày 23 tháng 1 năm 2023 đến ngày 4 tháng 8 năm 2023Ngày này cách đây 6 tháng 11 ngày. Hơn hai mươi bảy tuần ...
Sử dụng biến trong đường dẫn tệp python
Bởi vì trình bao mặc định của bạn trong Terminal là zsh. So sánh những điều sau đây (_______74_______ in tên của shell hiện tại)user-166% echo $0 zsh user-166% ...
Chức năng ngủ trong PHP là gì?
Khi bạn muốn tạm dừng thực thi trong tập lệnh của mình, có hai cách để bạn triển khai mã. Một số người (rất may là rất ít) chọn tùy chọn đầu tiên và ...
Gốc sudo mysql
Nội dungTrong bài hướng dẫn này mình sẽ chỉ các bạn cách cài đặt MySQL trên Ubuntu 20. 04You can you likeCài đặt WireGuard với Docker Compose trên Ubuntu 22. 04Hướng ...
Làm cách nào để bạn thêm nhiều đối tượng trong javascript?
Các mảng JavaScript đi kèm với một phương thức sắp xếp tích hợp. Phương thức sắp xếp này chuyển đổi các phần tử mảng thành chuỗi và thực hiện sắp ...
Thêm dấu phẩy vào mảng python
Sử dụng phương pháp str.join() để chuyển đổi danh sách thành chuỗi được phân tách bằng dấu phẩy, e. g. my_str = ,.join(my_list). Phương thức str.join() sẽ nối ...
Làm cách nào để sử dụng phạm vi trong vòng lặp PHP?
Một vòng lặp foreach trong PHP là hoàn hảo để lặp qua các phần tử của một mảng được lập chỉ mục hoặc một mảng kết hợp. Vòng lặp sẽ bắt đầu từ ...