PHP 5.4 และ Drupal 7


31

ฉันเคยได้ยินว่า PHP 5.4 เร็วกว่า PHP 5.3

มันจะโอเคที่ Drupal 7 จะทำงานต่ำกว่า 5.4 หรือโมดูลที่สนับสนุนต่างๆอาจเริ่มทำลายไซต์หรือไม่

อย่างไรก็ตามถ้าฉันใช้ APC แคชรหัสอาจจะ 5.4 จะไม่ให้ประโยชน์ใด ๆ เลย?

ขอบคุณ

คำตอบ:


28

ฉันเริ่มใช้ Drupal 7 บน PHP 5.4 ด้วยตนเองโดยมีปัญหาเล็กน้อยในรูปแบบของการแจ้งเตือนและคำเตือน

ด้านบนของ 7.12 คุณจะต้องใช้สองโปรแกรมแก้ไขเพื่อแก้ไขปัญหาที่ทำให้ PHP บ่น:

http://drupal.org/files/menu-link-save-1338282-15-d7.patch

http://drupal.org/files/database-query-clone-1414412-11-d7_0.patch

หนึ่งในแพตช์เหล่านี้ได้ถูกนำไปใช้กับ -dev ดังนั้นจะอยู่ใน 7.13 และอีกอันก็น่าจะเกิดขึ้นเร็ว ๆ นี้ ในทุกกรณีที่ฉันนึกได้ทันทีการปฏิบัติที่ไม่เหมาะสมที่ทำให้เกิดคำเตือน 5.4 นั้นเป็นการใช้คีย์อาเรย์อย่างไม่ถูกต้อง

เวอร์ชันแรกมีลักษณะดังนี้:

$some_key = function_call();
return $some_array[$some_key];

บางครั้งการเรียกใช้ฟังก์ชันจะส่งกลับอาร์เรย์หรือวัตถุซึ่งไม่ได้เป็นคีย์อาร์เรย์ที่ถูกต้อง ใน PHP 5.3 สิ่งที่เกิดขึ้นจริงและเงียบ ๆ มีลักษณะดังนี้:

$some_key = function_call();
return $some_array[(string)$some_key];

อย่างไรก็ตาม PHP 5.4 เตือนว่านี่อาจไม่ใช่สิ่งที่คุณต้องการ รุ่นที่สองเหมือนกันทุกประการ แต่อย่างอื่น

$some_key = 'a_valid_key';
$may_be_a_string = function_call();
return $may_be_a_string[$some_key];

ซึ่งทำให้เกิดข้อผิดพลาดเช่น

อ็อฟเซ็ตสตริงที่ผิดกฎหมาย 'a_valid_key'

เมื่อใดก็ตามที่$may_be_a_stringเป็นสตริงไม่ใช่อาร์เรย์เนื่องจากดัชนีสตริงที่ถูกต้องเท่านั้นเป็นจำนวนเต็ม

เนื่องจากปัญหาเข้าใจง่ายและการแก้ไขเป็นเรื่องง่ายที่จะนำไปใช้ฉันพบว่าในหลายกรณีเวอร์ชัน -dev ได้รับการอัพเดตแล้วหรือแพตช์ที่โพสต์ในคิวซึ่งมีแนวโน้มว่าจะเกิดขึ้นอย่างรวดเร็วเนื่องจาก ธรรมชาติเรียบง่ายของพวกเขา

หลังจากการทดสอบบางอย่างฉันไม่รู้สึกว่า 5.4 เป็น "อันตราย" ที่จะทำงานในการผลิตและฉันได้เริ่มเรียกใช้ไซต์ขนาดเล็กและส่วนตัวของฉันแล้ว ฉันอยากให้คนอื่นทำแบบเดียวกันดังนั้นเราจึงสามารถหลีกเลี่ยงการใช้ PHP เวอร์ชันใหม่ช้าลงในอดีต

ในขณะที่เขียน APCs เวอร์ชันล่าสุด 3.1.9 ไม่ทำงานกับ 5.4 ฉันได้สร้างและใช้จาก git เรียบร้อยแล้ว

การใช้ APC มีแนวโน้มที่จะลดประสิทธิภาพการทำงานของการอัพเกรดรุ่น PHP แต่ไม่สามารถลบได้


+1 ฉันสงสัยเกี่ยวกับเรื่องนี้ คุณสังเกตเห็นการเพิ่มประสิทธิภาพใด ๆ ใน Drupal โดยทั่วไปในการไปจาก 5.3 เป็น 5.4? ถ้าคุณจะไม่คิดโพสต์อีกเล็กน้อยเกี่ยวกับประสบการณ์ของคุณเพื่อให้ห่างไกลฉันมีความสุขที่จะได้รับรางวัลเงินรางวัลในคำตอบ :)
ไคลฟ์

ในสองสามคำที่มี APC อาจไม่คุ้มกับปัญหายกเว้นในกรณีที่อาจมีความเร็วเพิ่มขึ้นอย่างมากซึ่งดูเหมือนไม่ได้เป็นเช่นนั้น
จอห์น

@ Clive ฉันยังไม่ได้ทำการวัดประสิทธิภาพถึงแม้ว่าฉันตั้งใจจะ (ตอนนี้ค่อนข้างบางเวลา) มีอะไรเป็นพิเศษไหมที่คุณสงสัย? :)
Letharion

ใช่แล้ว :) ฉันเล่นกับความคิดที่จะอัพเกรดเป็น 5.4 แต่ทุกอย่างที่ฉันทำดูเหมือน Drupal ทุกวันนี้ฉันต้องแน่ใจว่ามันจะไม่ทำให้ชีวิตของฉันยากขึ้นไปอีก ฉันสบายดีกับการติดตั้งโมดูลไม่กี่โมดูลต่อไซต์ แต่ฉันกังวลว่าอีกไม่นานจะได้รับการบำรุงรักษายากและเซิร์ฟเวอร์การผลิตของเรายังคงอยู่ที่ 5.3 ดังนั้นฉันไม่แน่ใจว่าจะทำให้เกิดปัญหาใด ๆ หรือไม่ ความคิดเห็นใด ๆ ที่คุณมีกับสิ่งนั้นหรือข้อมูลเล็ก ๆ น้อย ๆ เกี่ยวกับสิ่งที่ "การปฏิบัติที่ไม่ดี" คือสิ่งที่ทำให้เกิดคำเตือน (เพื่อให้แน่ใจว่าโมดูลของตัวเองใช้ได้) จะช่วยได้มาก :)
Clive

ฉันได้อัปเดตคำตอบด้วยสิ่งที่ทำได้ :) ฉันติดตั้ง 5.3 ไว้ดังนั้นฉันสามารถสลับกลับมาและทำการทดสอบประสิทธิภาพได้อย่างง่ายดาย หวังว่าฉันจะจำได้ว่าจะกลับมาที่นี่เมื่อฉันได้รับมัน
Letharion

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.