2008-08-09 15 views
9

PHP4 से PHP5 तक चिकनी माइग्रेशन के लिए अनुसरण करने के लिए कुछ अच्छे कदम क्या हैं। कुछ प्रकार के कोड क्या हैं जो तोड़ने की संभावना है?PHP4 से PHP5 माइग्रेशन

उत्तर

8

मैंने एक बार एक ऐप पर भी काम किया जो PHP4 के एक्सएमएल समर्थन का काफी उपयोग करता था, और PHP5 पर जाने के लिए काफी काम करना पड़ता था।

उस समय के अन्य महत्वपूर्ण परिवर्तनों में से एक जो मैं देख रहा था वह फ़ंक्शन पैरामीटर के डिफ़ॉल्ट हैंडलिंग का परिवर्तन था। यदि मुझे याद है तो PHP4 में, वे पास-बाय-कॉपी थे जब तक आप अन्यथा निर्दिष्ट नहीं करते हैं, लेकिन PHP5 में डिफ़ॉल्ट रूप से पास-बाय-रेफरेंस में बदल दिया जाता है। अच्छी तरह लिखित कोड में, शायद यह आपके लिए बड़ा अंतर नहीं करेगा, लेकिन यह निश्चित रूप से समस्याएं पैदा कर सकता है।

मुझे लगता है कि एक और चीज जो मैंने पाया वह यह है कि वस्तुओं को अब उनके 'इस' फ़ील्ड को ओवरराइट करने की अनुमति नहीं है। मैं कहूंगा कि शुरुआत करने के लिए वास्तव में एक बुरा विचार था (और मुझे लगता है कि यह PHP4 में एक जानबूझकर विशेषता नहीं हो सकती है), लेकिन मुझे निश्चित रूप से हमारे सिस्टम के कुछ हिस्सों को मिला जो इस पर निर्भर थे।

आशा है कि इनमें से कुछ मदद करता है।

+0

मैं Google खोज परिणामों के शीर्ष पर इस पोस्ट को नोटिस करने के लिए हुआ था जब मैंने PHP4 बनाम PHP5 फ़ंक्शन व्यवहार के लिए गुजरने वाले तर्कों की खोज की थी। [PHP मैनुअल] (http://php.net/manual/en/functions.arguments.php) अन्यथा बताता है; मूल्य से गुजरना (पास-बाय-कॉपी) _still_ डिफ़ॉल्ट है। –

1

हम एक ऐप्लिकेशन है जो PHP 4 एक्सएमएल डोम कार्यों पर काफी भरोसा था और इस पर पीएचपी 5.

है कि सबसे अधिक परिवर्तन से परे थे निपटने त्रुटि तरह बातें करने के लिए सुधार बदलने के लिए retooling का एक बहुत आवश्यक (लाभ लेने के लिए अपवादों के) और PHP कक्षाएं।

2

सबसे अच्छा सलाह मैं PHP4 के साथ काम कर किसी को भी दे सकता है यह है:

error_reporting(E_ALL); 

यह बहुत ज्यादा आप वास्तव में यह बताएगा कि क्या करने की जरूरत।

+0

माइग्रेट करने से पहले या बाद में? –

1

ओओपी सबसे बड़ा अंतर है। यह तोड़ नहीं जाएगा क्योंकि PHP4 और PHP5 ओओपी शैलियों का आदान-प्रदान योग्य है लेकिन मैं PHP5 की नई ओओपी शैलियों का लाभ उठाने का प्रयास करूंगा। यह आपके मौजूदा वर्गों को PHP5 में बदलने के लिए बहुत अधिक काम नहीं है और यह आपको कुछ अतिरिक्त जादुई तरीकों देता है जो कुछ मौजूदा हैक्स को हल करने में मदद कर सकते हैं (मुझे याद है कि अधिकांश कक्षाओं में लगभग बेकार __toString समकक्ष विधि है)।

संबंधित मुद्दे