วิธีเตรียมไซต์ WordPress ของคุณสำหรับ PHP 8
เผยแพร่แล้ว: 2022-07-06ไซต์ WordPress ต้องการ PHP และเมื่อ PHP มีการพัฒนา WordPress ก็ยังคงดำเนินต่อไป ล่าสุด PHP 7.4 เป็นเวอร์ชันเริ่มต้นของ PHP บนแพลตฟอร์มวีไอพีของ WordPress อย่างไรก็ตาม เนื่องจาก PHP 7.4 สิ้นสุดการสนับสนุนด้านความปลอดภัยในเดือนพฤศจิกายน พ.ศ. 2565 ไซต์ WordPress จะต้องอัปเกรดเพื่อรักษาความปลอดภัยที่แข็งแกร่ง ด้วยเหตุนี้ แพลตฟอร์ม WordPress VIP จะย้ายแอปพลิเคชันลูกค้าของเราทั้งหมดให้ทำงานบน PHP 8.0
ต่อไปนี้เป็นคำอธิบายของการเปลี่ยนแปลงและขั้นตอนที่ทั้งลูกค้าของเราและผู้อื่นที่ใช้ WordPress บนแพลตฟอร์มอื่นสามารถเตรียมได้
สารบัญ
- เรื่องราว PHP 8.0
- คุณสมบัติใหม่
- การสนับสนุนที่เพิ่มขึ้นทั่วทั้งชุมชน PHP และ WordPress
- วิธีค้นหาปัญหาความเข้ากันได้ของ PHP 8.0
- ใช้ PHP_CodeSniffer กับมาตรฐานความเข้ากันได้ของ PHP
- ระบุคำเตือน PHP ที่ทราบซึ่งเป็นข้อผิดพลาดร้ายแรงของ PHP ภายใต้ PHP 8.0
- สร้างการทดสอบอัตโนมัติ
- ใช้ PHPStan/Psalm หรือเครื่องมือวิเคราะห์สแตติกอื่น
- วิธีเริ่มต้นใช้งาน PHP 8.0 บน WordPress VIP
- เรียกใช้แอปพลิเคชันในเครื่อง
- ตรวจสอบบอทวิเคราะห์รหัส VIP ตามคำขอดึง
- เปิดใช้งาน PHP 8 บนแอปพลิเคชัน WordPress VIP ของคุณ
- ใช้ประโยชน์จากความช่วยเหลือเชิงรุก
- แล้ว PHP 8.1 ล่ะ?
เรื่องราว PHP 8.0
เปิดตัวในเดือนพฤศจิกายน 2020 PHP 8.0 มีการปรับปรุงและคุณสมบัติหลายอย่างที่ทำให้โค้ดใหม่ (และโค้ดที่สั้นลง) มีความยืดหยุ่นมากขึ้นต่อบั๊ก
นักพัฒนาส่วนใหญ่จะพบประโยชน์มากมายใน PHP 8.0 อย่างไรก็ตาม เนื่องจากเป็นเวอร์ชันหลัก จึงมีการเปลี่ยนแปลงที่สำคัญหลายประการ สิ่งนี้ทำให้การเปลี่ยนจาก PHP 7.4 เป็น PHP 8.0 นั้นยากกว่าการเปลี่ยนจาก PHP 7.3 เป็น PHP 7.4 โดยเฉพาะอย่างยิ่ง มีการเปลี่ยนแปลง 49 อย่างใน core PHP และ 169 ตลอดทั้ง PHP 8 โดยรวม รวมถึงในไลบรารีและส่วนขยายที่โค้ดของคุณอาจใช้
ข่าวดีก็คือเมื่อองค์กรเปลี่ยนไปใช้ PHP 8.0 พวกเขาจะได้รับการสนับสนุนด้านความปลอดภัยจากโครงการ PHP หลักจนถึงเดือนพฤศจิกายน 2566 หลังจากวันนั้น องค์กรจะต้องอัปเกรดเป็น PHP 8.1 ซึ่งเป็นรุ่นย่อยที่ต้องการการเปลี่ยนแปลงที่น้อยกว่ามาก
คุณสมบัติใหม่
PHP 8.0 ได้รับการออกแบบมาเพื่อ 1) แก้ไขกรณีขอบและความไม่สอดคล้องกันเพื่อให้ PHP เป็นภาษาสคริปต์ที่คาดเดาได้ชัดเจนยิ่งขึ้น และ 2) ให้คุณสมบัติใหม่เพื่อปรับปรุงภาษาโดยรวม ซึ่งรวมถึงไวยากรณ์ใหม่หลายแบบที่:
- ทำให้ง่ายต่อการเขียนโค้ดที่พิมพ์อย่างเคร่งครัด เช่น ชนิดยูเนี่ยน ชนิดส
static
และmixed
อินเทอร์เฟซแบบStringable
ได้ และการเปลี่ยนแปลงในการจัดการตัวเลข - ลดจำนวนโค้ดที่คุณต้องรักษา เช่น ตัวดำเนินการ nullsafe การส่งเสริมคุณสมบัติของตัวสร้าง ตัวดำเนินการ
match
และตัวดักจับที่ไม่ดักจับ - ลดความซับซ้อนของโค้ด เช่น อนุญาตให้
::class
กับอ็อบเจ็กต์, เครื่องหมายจุลภาคต่อท้ายในรายการพารามิเตอร์,str_contains()
,str_starts_with()
และstr_ends_with()
ฟังก์ชั่น, นิพจน์การโยน, คุณลักษณะ
นอกจากนี้ยังมี Named Parameters อย่างไรก็ตาม เป็นที่น่าสังเกตว่าแกนหลักของ WordPress ไม่อ้างว่าเข้ากันได้กับคุณสมบัตินี้ ดังนั้นในขณะที่คุณสามารถเรียกใช้ฟังก์ชันแบบกำหนดเองด้วยพารามิเตอร์ที่มีชื่อได้ คุณไม่ควรเรียกใช้ฟังก์ชันของ WordPress เนื่องจากชื่อพารามิเตอร์อาจเปลี่ยนแปลงโดยไม่มีการเตือนในอนาคต
การสนับสนุนที่เพิ่มขึ้นทั่วทั้งชุมชน PHP และ WordPress
เมื่อใดก็ตามที่มีการเปิดตัว PHP เวอร์ชันใหม่ที่มีรูปแบบใหม่ มันต้องใช้เวลาในการสนับสนุนไวยากรณ์ใหม่ทั่วทั้งชุมชน PHP และ WordPress
เครื่องมือสำหรับนักพัฒนา PHP
เครื่องมือพัฒนา PHP เช่น Composer, PHPUnit, PHP_CodeSniffer, PHPStan, Xdebug และ IDE ต่างๆ ทั้งหมดจำเป็นต้องรู้จักไวยากรณ์ใหม่ของ PHP เวอร์ชันใหม่ ในขณะที่ PHP ได้รับการพัฒนาอย่างต่อเนื่อง อาจมีเวลาล่าช้าก่อนที่ระบบนิเวศเต็มรูปแบบรอบเวอร์ชันใหม่จะพร้อมใช้งาน อย่างไรก็ตาม บ่อยครั้งที่เครื่องมือสามารถพร้อมทำงานเมื่อถึงเวลาที่รุ่นสุดท้ายพร้อม เนื่องจากงานพัฒนาได้เกิดขึ้นจากรุ่น อัลฟ่า เบต้า และ รุ่นของผู้สมัคร ที่ได้รับการเผยแพร่ล่วงหน้า เครื่องมือทั้งหมดเหล่านี้และอื่น ๆ รองรับ PHP 8.0 ซึ่งเป็นทางเลือกที่ดีสำหรับการพัฒนาโค้ด PHP และสำหรับการพัฒนา WordPress โดยเฉพาะ
เวิร์ดเพรสคอร์
ต่อไป WordPress core ต้องรองรับ PHP 8.0 โปรเจ็กต์ WordPress มีประวัติความเข้ากันได้ยาวนานกับ PHP เวอร์ชันใหม่เมื่อถึงเวลาเปิดตัว ตามโพสต์ที่เขียนมาอย่างดีใน Make WP นี้ WordPress มี “ความเข้ากันได้ของเบต้า” กับ PHP 8.0 ตั้งแต่ WordPress 5.6 ออกในเดือนธันวาคม 2020 “ความเข้ากันได้ของเบต้า” หมายความว่าอย่างไร หมายความว่า WordPress สามารถทำงานได้ดีบน PHP 8.0 แต่ไม่รองรับคุณสมบัติเช่นการประกาศประเภทที่เข้มงวดในไฟล์หลักของ WordPress หรือการใช้พารามิเตอร์ที่มีชื่อพร้อมฟังก์ชั่นหลักของ WordPress
WordPress แพลตฟอร์มวีไอพี
แพลตฟอร์ม WordPress VIP รองรับ PHP 8.0 (และ PHP 8.1) ตั้งแต่เดือนพฤษภาคม 2565 รวมถึงชุดปลั๊กอินและคุณสมบัติที่ช่วยให้แพลตฟอร์มตอบสนองความต้องการขององค์กร
ปลั๊กอินบุคคลที่สาม
WordPress มีปลั๊กอินหลายหมื่นตัว และระดับการรองรับ PHP 8.0 นั้นแตกต่างกันอย่างมาก ตัวอย่างเช่น คำที่สงวนไว้ใหม่อาจยังคงถูกใช้โดยปลั๊กอิน หรือพารามิเตอร์ที่ส่งผ่านไปยังฟังก์ชันดั้งเดิมของ PHP อาจไม่ใช่ประเภทที่คาดไว้ในขณะนี้ ด้วยเหตุนี้ ปลั๊กอินของบริษัทอื่นอาจเป็นพื้นที่หนึ่งที่ความไม่เข้ากันกับ PHP 8.0 อาจส่งผลต่อแอปพลิเคชันของคุณ
ด้านล่างนี้ คุณสามารถเรียนรู้วิธีตรวจสอบความไม่ลงรอยกันบางอย่างเหล่านี้ได้ ตัวเลือกต่างๆ ได้แก่ การขอให้บุคคล/ทีมต้นน้ำทำการแก้ไขและออกเวอร์ชันใหม่ หรือมีทีมพัฒนาภายในหรือหน่วยงาน เช่น หนึ่งในพันธมิตรที่โดดเด่นของเรา แยกปลั๊กอินและทำการแก้ไขด้วยตนเอง
ปลั๊กอินที่กำหนดเอง
ลูกค้าเกือบทุกรายบนแพลตฟอร์มวีไอพีของ WordPress ใช้ปลั๊กอินที่กำหนดเองตั้งแต่หนึ่งตัวขึ้นไป เช่นเดียวกับปลั๊กอินของบุคคลที่สาม พวกเขายังต้องได้รับการตรวจสอบความเข้ากันได้ การขอให้นักพัฒนาดั้งเดิมแก้ไขปัญหาที่ค้นพบนั้นเป็นแนวทางปฏิบัติที่ดีที่สุด
ธีมของบุคคลที่สามหรือแบบกำหนดเอง
แม้ว่าปลั๊กอินจะเป็นสาเหตุของปัญหาความเข้ากันได้ แต่อย่าลืมว่าธีมของบุคคลที่สามและธีมที่กำหนดเองจะต้องเข้ากันได้กับ PHP 8.0 ด้วย วิธีการเดียวกันในการตรวจสอบความเข้ากันได้ของโค้ดปลั๊กอินใช้กับโค้ดของธีม
วิธีค้นหาปัญหาความเข้ากันได้ของ PHP 8.0
มีสี่แนวทางหลักที่ทีมพัฒนาสามารถใช้เพื่อตรวจสอบโค้ดเพื่อกำหนดปัญหาความเข้ากันได้:
- ใช้ PHP_CodeSniffer กับมาตรฐาน PHPCompatibility
- ระบุคำเตือน PHP ที่ทราบซึ่งเป็นข้อผิดพลาดร้ายแรงของ PHP ภายใต้ PHP 8.0
- สร้างการทดสอบอัตโนมัติ
- ใช้ PHPStan/Psalm หรือเครื่องมือวิเคราะห์สแตติกอื่น
ใช้ PHP_CodeSniffer กับมาตรฐานความเข้ากันได้ของ PHP
PHP_CodeSniffer (PHPCS) แปลงไฟล์ PHP และตรวจจับการละเมิดชุดมาตรฐานการเข้ารหัสที่กำหนดไว้ มีแพ็คเกจสำหรับ WordPress Coding Standards และ VIP Coding Standards ของเราเอง (ซึ่งเราสนับสนุนให้ลูกค้าใช้)
นอกจากนี้ยังมีแพ็คเกจที่เรียกว่า PHPCompatibility และ PHPCompatibilityWP และมาตรฐานเหล่านี้จะวิเคราะห์ codebase สำหรับความเข้ากันได้ของ PHP ข้ามเวอร์ชัน
เนื่องจากผลลัพธ์ขึ้นอยู่กับความสามารถของเครื่องมือและความพร้อม จึงจำเป็นต้องใช้สาขาการ develop
ของ PHPCompatibility จนกว่าเวอร์ชัน 10 จะออก เวอร์ชัน 10 จะมี sniffs ที่เกี่ยวข้องกับความเข้ากันได้ของ PHP 8.0 (และ PHP 8.1) ดูเอกสารของเราสำหรับคำแนะนำในการตั้งค่าการกำหนดค่าของคุณเพื่อใช้สาขาการ develop
เมื่อเปิดตัวเวอร์ชัน 10 แล้ว คุณจะใช้เวอร์ชันนั้นแทนได้
แพ็คเกจ PHPCompatbilityWP สร้างขึ้นบนแพ็คเกจ PHPCompatibility แต่ปิดการตรวจสอบสองสามรายการสำหรับรายการความเข้ากันได้แบบย้อนหลังที่ WordPress core มีตัวมันเอง
ด้วยการตั้งค่า PHPCS และ PHPCompatibility/PHPCompatibilityWP คุณสามารถเรียกใช้การตรวจสอบ:
phpcs --standard=PHPCompatibilityWP --severity=1 --runtime-set testVersion 8.0- --extensions=php <path-to-code>
<path-to-code>
อาจเป็นปลั๊กอินหรือธีมแบบกำหนดเองหรือของบุคคลที่สาม หากคุณต้องการเริ่มต้นแบบเล็กๆ หรือเป็นพื้นที่เก็บข้อมูลทั้งหมด หากคุณต้องการดูการละเมิดทั้งหมดที่ต้องตรวจสอบและแก้ไข
ขั้นตอนการสแกนจะไม่ตรวจพบปัญหาความเข้ากันได้ของเวอร์ชัน PHP ทั้งหมด (เช่น ประเภทค่ารันไทม์ที่ไม่ถูกต้อง) แต่จะช่วยระบุปัญหาที่พบบ่อยที่สุดที่เกี่ยวข้องกับไวยากรณ์
ระบุคำเตือน PHP ที่ทราบซึ่งเป็นข้อผิดพลาดร้ายแรงของ PHP ภายใต้ PHP 8.0
PHP 8.0 เห็นคำเตือนของเครื่องยนต์ที่จัดประเภทใหม่ โดยที่คำเตือนกลายเป็นข้อผิดพลาดร้ายแรงและข้อยกเว้น TypeError (และประกาศบางรายการกลายเป็นคำเตือน) ข้อความเตือน PHP เพื่อค้นหาภายใต้ PHP 7.4 คือ:
-
Attempt to assign property '*' of non-object
-
Attempt to modify property '*' of non-object
-
Attempt to increment/decrement property '*' of non-object
-
Creating default object from empty value
-
Cannot use a scalar value as an array
-
Cannot add element to the array as the next element is already occupied
-
Cannot unset offset in a non-array variable
-
Only arrays and Traversables can be unpacked
-
Invalid argument supplied for foreach()
-
Illegal offset type
-
Illegal offset type in isset or empty
-
Illegal offset type in unset
-
Cannot assign an empty string to a string offset
-
Division by zero
-
Use of undefined constant *
การแก้ไขคำเตือนเหล่านี้จำเป็นสำหรับแอปพลิเคชันเพื่อให้เข้ากันได้กับ PHP 8.0
หมายเหตุ: มีข้อผิดพลาดร้ายแรงอื่นๆ ใน PHP 8.0 ซึ่งไม่ใช่แม้แต่คำเตือนภายใต้ PHP 7.4 ตัวอย่าง ได้แก่
- เมธอดส่วนตัวไม่สามารถประกาศขั้นสุดท้ายได้ ยกเว้นคอนสตรัคเตอร์
- ลายเซ็นไม่ถูกต้องสำหรับเมธอด
- การตรวจสอบลายเซ็นวิธีการลักษณะนามธรรม
- การใช้
parent::
กับคลาสพาเรนต์ - ลายเซ็นวิธีการโอเวอร์โหลดที่เข้ากันไม่ได้ (หลักการทดแทน Liskov)
การจัดการกับการเปลี่ยนแปลงที่ทราบเหล่านี้เป็นจุดเริ่มต้นที่ดี TypeError จะถูกส่งออกไปอย่างสม่ำเสมอสำหรับฟังก์ชัน PHP ภายในทั้งหมด เช่น เมื่อมีการส่งผ่านประเภทพารามิเตอร์ที่ไม่ถูกต้อง แม้ว่าจะไม่ได้ประกาศการตรวจสอบประเภทที่เข้มงวดก็ตาม
นอกจากนี้ โปรดทราบว่าตัวดำเนินการ @
จะไม่ปิดเสียงข้อผิดพลาดร้ายแรงภายใต้ PHP 8.0 อีกต่อไป
โดยปกติ ใบสมัครของคุณควรไม่มีข้อผิดพลาด ไม่มีคำเตือน และไม่มีการแจ้งเตือน ขอแนะนำให้คุณระบุที่อยู่ที่คุณพบ คำเตือน PHP บางส่วนภายใต้ 8.x จะเป็นข้อผิดพลาดร้ายแรงใน PHP 9.0 ตัวอย่างเช่น อาจทำให้ตรรกะไม่ถูกต้องภายใต้ PHP 8.x การสร้างเวลาในการพัฒนาก่อนและหลังการเผยแพร่เพื่อแก้ไขปัญหาดังกล่าวและปัญหาที่ "หลีกเลี่ยงการค้นพบ" ระหว่างการพัฒนาเป็นแนวทางปฏิบัติที่ดีที่สุด นอกจากนี้ยังเป็นการลงทุนเพื่อความเสถียรของไซต์ และความสามารถในการตรงตามเกณฑ์การยอมรับสำหรับคุณลักษณะที่เกี่ยวข้องอย่างถูกต้อง
สร้างการทดสอบอัตโนมัติ
มีการทดสอบอัตโนมัติหลายประเภท แต่เราหมายถึง:
- การทดสอบ หน่วย —จำลองฟังก์ชันหรือคลาสที่กำหนดโดย WordPress และไม่ต้องการอินสแตนซ์ของฐานข้อมูลเพื่อดำเนินการทดสอบ
- การทดสอบการรวม— โหลด WordPress และใช้ฐานข้อมูลการทดสอบจริง
หัวข้อนี้ใหญ่เกินกว่าจะครอบคลุมได้ดีในที่นี้ แต่มีบางสิ่งที่ควรพิจารณา:
- ผลลัพธ์ขึ้นอยู่กับความสมบูรณ์ของชุดทดสอบ หากคุณไม่มีการทดสอบจำนวนมาก คุณจะขาดการครอบคลุมที่จำเป็นเพื่อให้แน่ใจว่าเข้ากันได้
- ใช้การยืนยันที่เข้มงวด ตัวอย่างเช่น การใช้
assertEquals()
จะทำการเปรียบเทียบแบบหลวมๆ ในขณะที่assertSame()
จะตรวจสอบประเภทด้วยเช่นกัน - ใช้การครอบคลุมรหัสที่เข้มงวด เพิ่ม
beStrictAboutCoversAnnotations=”true”
และforceCoversAnnotations=”true”
ลงในไฟล์กำหนดค่า PHPUnit จากนั้นใช้คำอธิบายประกอบ@covers
เพื่อค้นหาระดับที่ถูกต้องของการครอบคลุมรหัสสากลในการทดสอบ - ทดสอบเส้นทาง ความสุข (พฤติกรรมตามปัจจัยป้อนเข้าที่คาดหวัง) และเส้นทางที่ ไม่มีความสุข (พฤติกรรมตามปัจจัยที่ป้อนเข้าที่ไม่คาดคิด) เพื่อให้แน่ใจว่าการทำงานล้มเหลวตามที่คาดไว้ เนื่องจากนี่เป็นจุดที่เกิดปัญหาที่เกี่ยวข้องกับความเข้มงวดมากที่สุด
- ทำการทดสอบของคุณบน PHP 8.0 สำหรับการทดสอบ Integration (WordPress) มีการเปลี่ยนแปลงในปี 2021 กับชุดทดสอบหลักของ WordPress ที่ปลดล็อกโดยใช้ PHPUnit เวอร์ชันที่ใหม่กว่า ซึ่งจะรองรับ PHP 8.0 สิ่งนี้ได้รับการสนับสนุนโดยแพ็คเกจ WP Test Utils ซึ่งรวมถึง PHPUnit Polyfills, Brain Monkey และการสนับสนุนการเยาะเย้ย, ฟังก์ชันเพิ่มเติมสำหรับฟังก์ชั่น WordPress และการเข้าถึงยูทิลิตี้การทดสอบดั้งเดิมของ WP ทั้งหมด เช่น วิธีการจากโรงงานสำหรับการสร้างเนื้อหา
- พิจารณาเขียนการทดสอบก่อนที่จะพยายามแก้ไข เพื่อให้มั่นใจมากขึ้นว่าการเปลี่ยนแปลงความเข้ากันได้สำเร็จแล้ว
ใช้ PHPStan/Psalm หรือเครื่องมือวิเคราะห์สแตติกอื่น
แม้ว่า PHPCS จะตรวจจับความเข้ากันไม่ได้ แต่ก็มีการเปลี่ยนแปลงรันไทม์บางอย่างที่ PHPCS ไม่ได้ออกแบบมาให้ตรวจจับได้ ตัวอย่างหนึ่งที่ไม่ควรพลาดคือฟังก์ชัน PHP ดั้งเดิมที่เข้มงวดมากขึ้นกับประเภทที่สามารถส่งผ่านเป็นพารามิเตอร์ได้
เครื่องมืออย่าง PHPStan, Psalm หรือเครื่องมือวิเคราะห์สแตติกอื่นๆ สามารถช่วยได้ที่นี่ แต่เพื่อให้เกิดประสิทธิภาพสูงสุด พวกเขาต้องการให้ codebase ของคุณใช้ประเภทที่เข้มงวด (พารามิเตอร์และประเภทการส่งคืนในรหัส) หรือจัดทำเอกสารอย่างถูกต้อง ( @param
และ @return
บรรทัดใน DocBlocks)
เครื่องมือเหล่านี้มักจะมีระดับกฎที่อนุญาตให้แก้ไขปัญหาระดับต่ำสุดก่อน จากนั้นจึงค่อยรวมเครื่องมือเพิ่มเติมเพื่อปรับปรุงคุณภาพของโค้ดเบสของคุณ
คุณสามารถเพิ่มความรู้สำหรับประเภทสำหรับโค้ดหลักของ WordPress ผ่านส่วนขยาย เช่น phpstan-wordpress และ psalm-plugin-wordpress
เมื่อกำหนดค่าแล้ว การเรียกใช้แต่ละครั้งจะเน้นว่าคุณกำลังส่งประเภทที่ไม่คาดคิดไปยังฟังก์ชันใด ซึ่งอาจทำให้เกิดข้อยกเว้น TypeError ที่ร้ายแรง สิ่งเหล่านี้จะต้องได้รับการแก้ไข
ในหลายกรณี คุณอาจสามารถระงับข้อยกเว้น TypeError ได้โดยใช้บล็อก try-catch หรือ typecasting อย่างไรก็ตาม เราขอแนะนำให้คุณอย่าทำ การแก้ไขที่ต้นเหตุจะทำให้โค้ดแข็งแกร่งขึ้น เปราะน้อยลง และเกิดข้อผิดพลาดได้ง่าย และจะได้ผลเกือบทุกครั้งในระยะยาว
วิธีเริ่มต้นใช้งาน PHP 8.0 บน WordPress VIP
เรียกใช้แอปพลิเคชันในเครื่อง
การเรียกใช้อินสแตนซ์ของแอปพลิเคชันในเครื่องเป็นขั้นตอนแรกที่สมเหตุสมผลในการตรวจจับและแก้ไขปัญหาความเข้ากันได้ แม้ว่าคุณจะสามารถใช้สภาพแวดล้อมการพัฒนาในท้องถิ่นได้ แต่เพื่อให้มั่นใจว่ามีความเท่าเทียมกันกับแพลตฟอร์มวีไอพีของ WordPress มากที่สุด เราขอแนะนำสภาพแวดล้อมการพัฒนาท้องถิ่นของวีไอพี โดยการรันคำสั่ง vip dev-env create --php=8.0
(ด้วย VIP-CLI 2.9.5 หรือใหม่กว่า) จากนั้นดำเนินการ Setup Wizard ที่เหลือให้เสร็จสิ้น แอปพลิเคชันของคุณจะทำงานในเครื่องด้วย PHP 8.0
ตรวจสอบบอทวิเคราะห์รหัส VIP ตามคำขอดึง
หากคุณดูคำขอดึงใด ๆ ที่ทำกับที่เก็บของคุณภายใต้องค์กร wpcomvip คุณจะเห็นบอทวิเคราะห์รหัส VIP ให้คำติชมเกี่ยวกับ PHPCS, PHP linting และ SVG linting
สำหรับขั้นตอน PHP Linting บอทจะทำการ Lint โค้ด PHP กับ PHP เวอร์ชันใดก็ได้ที่ใช้สำหรับแอปพลิเคชันที่พื้นที่เก็บข้อมูลปรับใช้ หากเวอร์ชันนั้นคือ PHP 7.4 ตอนนี้จะทำการ Lint โดยอัตโนมัติโดยใช้ PHP 8.0 ด้วยเช่นกัน เพื่อเตรียมพร้อมสำหรับสวิตช์ที่จะเกิดขึ้น
เปิดใช้งาน PHP 8 บนแอปพลิเคชัน WordPress VIP ของคุณ
เมื่อคุณตรวจสอบและแก้ไขได้มากเท่าที่คุณจะทำได้ในเครื่อง ก็ถึงเวลาเปิดใช้งาน PHP 8.0 บนแอปพลิเคชัน WordPress VIP ของคุณ เริ่มต้นด้วยสภาพแวดล้อมที่ต่ำที่สุดของคุณ และตรวจสอบว่าทุกอย่างดูดี (รวมถึงบันทึก PHP ผ่าน vip-cli หรือบันทึกสุขภาพในแดชบอร์ด VIP) ก่อนที่จะย้ายไปยังสภาพแวดล้อมที่ใช้งานจริง
ในการเปิดใช้งาน PHP 8.0 ในสภาพแวดล้อม ให้เปิดตั๋ว Zendesk เพื่อแจ้งให้เราทราบว่าคุณต้องการเปิดใช้งานแอปพลิเคชันและสภาพแวดล้อมใด
เร็วๆ นี้เราจะเปิดตัวคุณลักษณะใหม่บนแดชบอร์ด VIP เพื่อให้สามารถเปลี่ยนเวอร์ชัน PHP ได้โดยไม่ต้องเปิดตั๋ว ตรวจสอบข้อมูลล่าสุดที่ล็อบบี้เสมอ
ใช้ประโยชน์จากความช่วยเหลือเชิงรุก
ทีมบัญชีสำหรับลูกค้า Premier ได้ติดต่อลูกค้าเพื่อหารือเกี่ยวกับวิธีที่เราจะสนับสนุนพวกเขา พวกเขาจะส่งผลจาก PHPCS และให้คำแนะนำเกี่ยวกับวิธีการดำเนินการตรวจสอบเหล่านี้ด้วยตนเอง คำเตือน PHP ที่จะกลายเป็นข้อผิดพลาดร้ายแรงจะถูกเน้นด้วย ทำให้พวกเขาเริ่มต้นในการจัดการกับความไม่ลงรอยกัน
แล้ว PHP 8.1 ล่ะ?
แพลตฟอร์ม WordPress VIP ยังรองรับ PHP 8.1 มีการเปลี่ยนแปลงระหว่าง PHP 8.0 และ PHP 8.1 น้อยกว่าการเปลี่ยนแปลงระหว่าง PHP 7.4 ถึง 8.0 ซึ่งหมายความว่าควรมีความเข้ากันไม่ได้ในการแก้ไขน้อยลง
PHP 8.1:
- มีการสนับสนุนเชิงรุกจากนักพัฒนาหลักของ PHP จนถึงเดือนพฤศจิกายน 2023 และการสนับสนุนด้านความปลอดภัยจนถึงเดือนพฤศจิกายน 2024
- รองรับคำขอต่อวินาทีมากกว่า PHP 8.0
- มีการรองรับ "ความเข้ากันได้ของเบต้า" บน WordPress 5.9 ขึ้นไป ซึ่งหมายความว่ามีประกาศการเลิกใช้งานบางอย่างเพื่อเตรียมพร้อมสำหรับ PHP 9 แต่ไม่ส่งผลต่อการทำงานของคอร์ของ WordPress
การเปลี่ยนแปลงที่เป็นประโยชน์ที่จำเป็นสำหรับ PHP 8.0 เช่น การใช้โค้ดที่พิมพ์อย่างเข้มงวดและการเพิ่มการทดสอบอัตโนมัติ จะช่วยในการเปิดตัว PHP 8.1 รวมถึงการอัปเกรดสำหรับ WordPress 6.1, 6.2, 6.3 และอื่นๆ ตลอดจนฟีเจอร์ที่คุณเผยแพร่ กระบวนการ QA มักเป็นคอขวด ดังนั้นการใช้เครื่องมือและแนวทางบางอย่างที่เราได้สรุปไว้สามารถลดการใช้แรงงานคนและทำให้คุณมั่นใจมากขึ้นเมื่อปรับใช้การเปลี่ยนแปลงเหล่านี้
หากลูกค้ามีคำถามเกี่ยวกับ PHP 8.0 โปรดเปิดตั๋วกับเรา