PHP 5.4 और Drupal 7


31

मैंने सुना है कि PHP 5.4 PHP 5.3 से तेज है।

क्या Drupal 7 का 5.4 के तहत चलना ठीक होगा, या विभिन्न योगदान मॉड्यूल साइट को तोड़ने के लिए शुरू हो सकते हैं?

वैसे भी, अगर मैं एपीसी ओपकोड कैश का उपयोग करता हूं, तो शायद 5.4, बिल्कुल भी कोई लाभ नहीं देगा?

धन्यवाद

जवाबों:


28

मैंने PHP 5.4 पर खुद को नोटिस और चेतावनियों के रूप में केवल मामूली समस्याओं के साथ Drupal 7 चलाना शुरू कर दिया है।

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

इनमें से एक पैच पहले ही -देव पर लागू हो चुका है, इसलिए 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वास्तव में एक स्ट्रिंग होती है, तो कोई सरणी नहीं, क्योंकि एकमात्र मान्य स्ट्रिंग इंडेक्स पूर्णांक होते हैं।

जैसा कि समस्याओं को समझना आसान है और फिक्स (ज्यादातर) लागू करना आसान है, मैंने पाया है कि कई मामलों में, -देव संस्करण पहले से ही अपडेट किए गए हैं, या कतार में पोस्ट किए गए पैच हैं, जिनके कारण जल्दी से जाने की संभावना है उनका सरल स्वभाव।

कुछ परीक्षण के बाद, मुझे ऐसा नहीं लगता है कि 5.4 उत्पादन में चलने के लिए "खतरनाक" है, और मैंने पहले ही इस पर अपनी छोटी और व्यक्तिगत साइटें चलाना शुरू कर दिया है। मैं अन्य को भी ऐसा करने के लिए प्रोत्साहित करूंगा, ताकि हम नए PHP संस्करणों के ऐतिहासिक रूप से धीमी गति से आगे बढ़ने से बच सकें।

लेखन के समय, APCs नवीनतम संस्करण, 3.1.9, 5.4 के साथ काम नहीं करता है । मैं सफलतापूर्वक बनाया है और हालांकि यह git से इस्तेमाल किया।

APC का उपयोग करने से संभवतः PHP संस्करण को अपग्रेड करने के प्रदर्शन लाभ में कमी आएगी, लेकिन इसे हटाएं नहीं।


+1 मैं इस बारे में सोच रहा था। क्या आपने ड्रुपल में आम तौर पर 5.3 से 5.4 तक जाने में किसी भी प्रदर्शन को बढ़ावा दिया है? आप थोड़ा अपने अनुभवों के बारे में अधिक अब तक पोस्टिंग कोई फ़र्क नहीं पड़ेगा अगर मैं जवाब पर :) एक इनाम पुरस्कार में हमें खुशी होगी
क्लाइव

एपीसी वाले कुछ शब्दों में, परेशानी के लायक नहीं है, भले ही गति में उल्लेखनीय वृद्धि हो सकती है, जो लगता है कि मामला नहीं है।
जॉन

@ क्लिक करें, मुझे अभी तक प्रदर्शन माप करना है, हालाँकि मैं अभी (कुछ समय के लिए) इरादा करना चाहता हूँ। विशेष रूप से आप के बारे में सोच रहे हैं वहाँ कुछ है? :)
सुस्ती

सॉरी, हाँ :) मैं 5.4 में अपग्रेड करने के विचार के साथ अग्रणी रहा हूं, लेकिन इन दिनों मैं जो कुछ भी करता हूं वह ड्रुपल लगता है, मुझे यकीन है कि यह मेरे जीवन को बहुत अधिक कठिन बनाने वाला नहीं है। मैं प्रति साइट कुछ मॉड्यूल पैचिंग के साथ ठीक हूं, लेकिन मुझे चिंता है कि इसे जल्द ही बनाए रखना मुश्किल होगा, और हमारे उत्पादन सर्वर अभी भी 5.3 पर हैं इसलिए मुझे यकीन नहीं है कि अगर कोई समस्या होगी। उस तरह की बात पर आपकी कोई भी टिप्पणी, या "बुरे व्यवहार" के बारे में थोड़ी जानकारी जो आम तौर पर चेतावनी का कारण बनती है (यह सुनिश्चित करने के लिए कि मेरे अपने मॉड्यूल ठीक हैं) एक बड़े पैमाने पर मदद होगी :)
क्लाइव

मैंने उस उत्तर को अपडेट कर दिया है जो मैं कर सकता था। :) मैं 5.3 स्थापित रखता हूं ताकि मैं आसानी से वापस स्विच कर सकूं और कुछ प्रदर्शन परीक्षण कर सकूं। उम्मीद है कि जब मैंने इसे प्राप्त कर लिया है तो मुझे यहाँ वापस आना याद होगा।
प्रात: काल

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.