Wordpress có thể sử dụng php 8 không?

Bây giờ PHP 8. 0 đã được phát hành chính thức, chúng tôi đã cung cấp ứng dụng này cho mọi môi trường trên Kinsta. Trước đây, PHP 8. 0 [RC1] chỉ khả dụng cho môi trường dàn dựng để ngăn lỗi không tương thích trên các trang web sản xuất

Phiên bản mới nhất của PHP giới thiệu một số tính năng nâng cao hiệu suất như biên dịch JIT, Union Type 2. 0, mảng chỉ mục âm, v.v. PHP8. 0 là phiên bản PHP nhanh nhất, vì vậy chúng tôi khuyên bạn nên nâng cấp nếu trang web của bạn hoàn toàn tương thích với phiên bản này

Trước khi chuyển sang PHP 8. 0, đây là một số điều cần lưu ý

  • Chúng tôi khuyên bạn chỉ nên sử dụng PHP 8. 0 với WordPress5. 6 trở lên để tương thích. Nếu bạn đang chạy phiên bản WordPress cũ hơn, hãy thử nghiệm trang web của bạn với WordPress 5. 6 trong môi trường dàn dựng và nâng cấp trang web trực tiếp của bạn nếu không có vấn đề gì phát sinh. Nếu bạn nhận thấy sự cố với WordPress 5. 6, hãy làm việc với nhà phát triển đủ điều kiện để gỡ lỗi trang web của bạn trước khi nâng cấp lên PHP 8. 0
  • Không phải tất cả các plugin và chủ đề đều tương thích với PHP 8. 0 và nhóm hỗ trợ của chúng tôi không thể hỗ trợ các vấn đề về tương thích mã. Nếu bạn nhận thấy vấn đề về plugin hoặc chủ đề trên trang web của mình, chúng tôi khuyên bạn nên liên hệ với nhà phát triển plugin hoặc chủ đề về PHP 8. 0 không tương thích
  • PHP8. 0 với tiện ích mở rộng ionCube Loader dự kiến ​​sẽ xuất xưởng vào quý 1 năm 2021. Nếu bạn dựa vào Trình tải ionCube cho trang web của mình, đừng nâng cấp lên PHP 8. 0 tại thời điểm này

Cách nâng cấp lên PHP 8

Để kích hoạt PHP 8. 0, hãy truy cập trang "Công cụ" của trang web của bạn trong MyKinsta

Trong “PHP Engine”, nhấp vào “Sửa đổi” và chọn PHP 8. 0. Nó là dễ dàng

PHP8. 0 hiện có sẵn cho tất cả các môi trường Kinsta

Để biết thêm thông tin về những nâng cấp thú vị trong phiên bản PHP mới nhất, hãy nhớ xem hướng dẫn chuyên sâu của chúng tôi về PHP 8. 0 và đăng ký nhận bản tin của chúng tôi

PHP8. 0 sẽ được phát hành vào ngày 26 tháng 11 năm 2020. Là ngôn ngữ lập trình cung cấp năng lượng cho các trang web WordPress, phiên bản mới nhất của PHP cung cấp các tính năng mới mà các nhà phát triển sẽ thấy hữu ích và các cải tiến hứa hẹn sẽ tăng cường đáng kể tính bảo mật và hiệu suất trong thời gian dài. Nó cũng loại bỏ hoàn toàn một số chức năng không dùng nữa. PHP 8 là một thay đổi lớn so với các phiên bản trước

Trong bài viết này, chúng tôi hy vọng cung cấp thông tin chi tiết về ý nghĩa của điều này đối với chủ sở hữu trang web WordPress, bao gồm các chiến lược áp dụng được đề xuất

Tôi có nên nâng cấp ngay không?

Không. Phiên bản chính sắp tới của WordPress, 5. 6, được dự định là phiên bản beta tương thích với PHP 8, theo cuộc trò chuyện ngày 18 tháng 11 của nhà phát triển WordPress. Điều này có nghĩa là hầu hết chức năng cốt lõi của WordPress sẽ hoạt động nhưng các lỗi không mong muốn vẫn có thể xảy ra trong một thời gian, ngay cả khi không có plugin hoặc chủ đề bổ sung. WordPress đã kêu gọi thử nghiệm bổ sung với PHP 8 để tìm và sửa càng nhiều lỗi còn lại càng tốt

Tại Wordfence, nhóm Đảm bảo chất lượng của chúng tôi đang làm việc để đảm bảo rằng plugin của chúng tôi tương thích với PHP 8 trong nhiều môi trường khác nhau. Các phiên bản Wordfence sắp tới sẽ cung cấp mức hỗ trợ một phần tương tự, mặc dù chúng tôi đã lên kế hoạch thử nghiệm bổ sung để đạt được khả năng tương thích hoàn toàn

Một số lượng lớn các plugin và chủ đề WordPress sẽ không tương thích ngay lập tức với PHP 8. Những người không gặp lỗi nghiêm trọng trong quá trình sử dụng bình thường vẫn có thể hiển thị hành vi không mong muốn trong một thời gian

Điều này bao gồm những thay đổi vi phạm nào?

Một số nhà phát triển từ lâu đã lập luận rằng PHP không an toàn theo mặc định. Mặc dù điều này còn gây tranh cãi, nhưng sự thật là các phiên bản PHP trước PHP 8 có khả năng chịu lỗi cao hơn và cố gắng hết sức để đảm bảo rằng mã sẽ chạy ngay cả khi có lỗi nhỏ

PHP 8 sử dụng kiểu gõ chặt chẽ hơn nhiều so với các phiên bản trước. Nhiều hàm tích hợp hiện đã kén chọn hơn về đầu vào mà chúng chấp nhận và bản thân PHP 8 nghiêm ngặt hơn về cách đầu vào được chuyển đến các hàm. Các sự cố trước đây dẫn đến thông báo giờ dẫn đến cảnh báo và các sự cố trước đây dẫn đến cảnh báo giờ dẫn đến lỗi

Nói cách khác, PHP 8 không khoan dung như các phiên bản trước. Nó sẽ không cố gắng hết sức để làm cho mã hoạt động bất kể điều gì

Một số chức năng và tính năng không được dùng trong PHP 7. x đã bị xóa hoàn toàn. Bao gồm các

  • Biến $php_errormsg
  • Hàm create_function[]
  • Chỉ thị ini của mbstring.func_overload
  • Loại real
  • Chỉ thị ini của allow_url_include
  • Hàm restore_include_path[]
  • Hàm each[]

Mặc dù hầu hết trong số này không còn được sử dụng rộng rãi, nhưng chúng tôi đã xác định rằng create_function vẫn được sử dụng trong hơn 5.500 plugin WordPress, bao gồm các plugin cực kỳ phổ biến với hàng triệu lượt cài đặt. Trong một số trường hợp, việc sử dụng các hàm không dùng nữa này có thể nhằm mục đích tương thích ngược với các phiên bản PHP cũ hơn. Tuy nhiên, nhiều plugin sẽ cần tái cấu trúc rộng rãi khi PHP 8 được sử dụng nhiều hơn

Khá nhiều plugin và chủ đề cũng phụ thuộc nhiều vào thư viện của bên thứ ba. Các nhà phát triển WordPress có thể cần đợi cho đến khi chúng được cập nhật để tương thích. Nếu các thư viện này không được duy trì hoặc cập nhật để tương thích với PHP 8, thì có thể cần phải rẽ nhánh các thư viện này, tìm giải pháp thay thế hoặc thậm chí viết lại plugin và chủ đề từ đầu

Để biết thêm thông tin chi tiết về những gì đã thay đổi, bạn bè của chúng tôi tại Yoast đã tạo một báo cáo tương thích tuyệt vời dành cho các nhà phát triển đang tìm cách đảm bảo phần mềm của họ tương thích

Có những mối quan tâm bảo mật nào?

PHP cho phép một thứ gọi là “Type Juggling. ” Điều này có nghĩa là nó có thể xử lý các chuỗi chứa số giống như cách nó xử lý các số nguyên hoặc số float, đồng thời có thể thực hiện phép toán và so sánh giữa các loại khác nhau này miễn là toán tử so sánh lỏng lẻo == được sử dụng thay vì toán tử so sánh nghiêm ngặt ===. Đối với các nhà phát triển, Type Juggling có thể rất hữu ích và tiết kiệm thời gian khi viết mã, nhưng đôi khi nó có thể dẫn đến hành vi bất thường

Một ví dụ kinh điển về cách Type Juggling có thể gây ra vấn đề là việc so sánh create_function[]0 sẽ trả về create_function[]1. PHP 8 sửa loại hành vi này để những so sánh này và tương tự [e. g. , create_function[]2] sẽ trả về create_function[]3

Nhìn chung, điều này thực sự sẽ cải thiện an ninh. Có một số cách khai thác có thể lợi dụng hành vi PHP Type Juggling để vượt qua kiểm tra cookie, nonce hoặc mật khẩu không chuẩn. Tuy nhiên, một số lượng lớn plugin sử dụng các phép so sánh lỏng lẻo này, đôi khi cho các chức năng quan trọng. Trong hầu hết các trường hợp, chúng sẽ tiếp tục hoạt động bình thường khi sử dụng PHP 8, nhưng một vài trong số chúng thực sự có thể dựa vào hành vi không chính xác để hoạt động bình thường. Trong một số trường hợp hiếm hoi, điều này có thể mở ra các lỗ hổng bảo mật mới

Trách nhiệm cập nhật mã để tương thích với PHP 8 có thể là quá nhiều đối với một số nhà phát triển và nhiều plugin và chủ đề có thể bị bỏ rơi, mặc dù điều này ít có khả năng xảy ra đối với các plugin và chủ đề có cơ sở cài đặt lớn. Bất kỳ vấn đề bảo mật nào trong các plugin và chủ đề bị bỏ rơi này sẽ không được vá, điều này có thể gây ra thảm họa

Tương tự như vậy, nhiều trang web có thể vẫn sử dụng phiên bản PHP không an toàn để giữ cho các plugin kế thừa của chúng hoạt động

Cuối cùng, một số dòng phần mềm độc hại dựa vào các chức năng không dùng nữa cũng như khả năng chịu lỗi của PHP để làm xáo trộn ý định của chúng. Các dòng này sẽ ngừng hoạt động hoặc trở nên đáng chú ý hơn trong môi trường PHP 8, nhưng các tác giả phần mềm độc hại sẽ điều chỉnh kịp thời

Những thay đổi hiệu suất đang đến?

Một tính năng thú vị tiềm năng sắp có trong PHP 8 là biên dịch JIT, hay “Just In Time”. PHP là một ngôn ngữ thông dịch, có nghĩa là nó được dịch sang mã máy khi nó chạy. JIT theo dõi mã được sử dụng thường xuyên và cố gắng tối ưu hóa bản dịch mã máy để có thể sử dụng lại. Điều này có thể dẫn đến cải thiện hiệu suất lớn cho chức năng cụ thể

Việc bổ sung JIT vào các ngôn ngữ khác, chẳng hạn như JavaScript, trong lịch sử đã dẫn đến sự bùng nổ của các ứng dụng mới. Ví dụ: các máy ảo chạy bằng JavaScript sẽ không thể tưởng tượng được trong những ngày đầu của web. Một số tác vụ trước đây yêu cầu cài đặt một mô-đun trên máy chủ sẽ trở nên khả thi khi sử dụng các thư viện PHP thuần túy

Tuy nhiên, hiện tại, cải thiện hiệu suất thực tế cho các ứng dụng web như WordPress là rất ít và sẽ mất một thời gian dài trước khi người dùng hoặc nhà phát triển WordPress trung bình gặt hái được những lợi ích của tính năng mới này

Mặc dù có nhiều tính năng mới khác giúp cuộc sống của các nhà phát triển trở nên dễ dàng hơn, nhưng không chắc rằng những tính năng này sẽ được sử dụng trong các plugin và chủ đề WordPress trong tương lai gần, vì hầu hết sẽ phá vỡ khả năng tương thích ngược với các phiên bản PHP trước đó vẫn được nhiều trang web WordPress sử dụng

Các nhà phát triển phải cập nhật trong bao lâu?

Mỗi phiên bản PHP có vòng đời 2 năm trong đó các lỗi được sửa và thêm một năm trong đó các sự cố bảo mật được vá. PHP7. 4 ra mắt vào tháng 11 năm 2019. Là phiên bản cuối cùng của PHP 7, điều này có nghĩa là các lỗi trong PHP 7. 4 sẽ được sửa cho đến tháng 11 năm 2021 và các vấn đề bảo mật sẽ được vá cho đến tháng 11 năm 2022, lúc đó nó sẽ đạt đến “End of Life”. Điều này có nghĩa là tháng 11 năm 2022 có thể được coi là ngày giới hạn cứng. tất cả mã PHP phải tương thích với PHP 8. 0 ở mức tối thiểu vào thời điểm này hoặc có nguy cơ bị mắc kẹt trên phiên bản PHP có khả năng dễ bị tấn công

Phần kết luận

Quá trình chuyển đổi sang PHP 8 là một trong những thay đổi lớn nhất và có tác động mạnh nhất mà ngôn ngữ này từng thấy. Mặc dù về lâu dài nó sẽ có giá trị, nhưng chủ sở hữu và nhà phát triển trang web WordPress có thể gặp khó khăn trong thời gian ngắn. Nếu bạn là chủ sở hữu trang web, hãy bắt đầu theo dõi cẩn thận xem plugin và chủ đề nào của bạn đang được cập nhật hoặc kiểm tra tính tương thích và lập kế hoạch thay thế những plugin và chủ đề không được cập nhật. Nếu bạn là nhà phát triển, hãy bắt đầu kiểm tra mã của bạn và bất kỳ phụ thuộc nào trên PHP 8, nếu bạn chưa kiểm tra và bắt đầu lập kế hoạch rẽ nhánh hoặc thay thế bất kỳ thư viện nào chưa được cập nhật. Hệ sinh thái WordPress đã trải qua quá trình chuyển đổi khó khăn trong quá khứ và cộng đồng nguồn mở của chúng tôi luôn phát triển và thích nghi

Đặc biệt cảm ơn Trưởng nhóm QA Matt Rusnak và Trưởng nhóm phát triển Matt Barry vì sự hỗ trợ của họ trong bài viết này

Phiên bản PHP nào tương thích với WordPress?

WordPress. org đề xuất ít nhất PHP 7. 4 . Bạn có thể thấy một thông báo cảnh báo trong bảng điều khiển WordPress yêu cầu bạn nâng cấp PHP nếu nó vẫn sử dụng phiên bản thấp hơn 7. 4. Bạn có thể tìm thấy các bước để nâng cấp phiên bản WordPress của mình bên dưới.

WooC Commerce có tương thích với PHP 8 không?

Yêu cầu tối thiểu về WooC Commerce . 3+ và phiên bản MySQL nhỏ hơn 5. 6 không còn nhận được hỗ trợ tích cực PHP versions less than 7.3+ and MySQL versions less than 5.6 no longer receive active support , nhiều phiên bản đã hết tuổi thọ và do đó không còn được duy trì. Do đó, việc sử dụng các phiên bản MySQL và PHP đã lỗi thời và không được hỗ trợ có thể khiến trang web của bạn gặp phải các lỗ hổng bảo mật.

Chủ Đề