초록 기린

PHP संस्करण अपग्रेड टूल रेक्टर परिचय

  • लेखन भाषा: कोरियाई
  • आधार देश: सभी देशcountry-flag
  • आईटी

रचना: 2024-03-24

रचना: 2024-03-24 23:17

जब मैंने GNU Board 5 (ग्रूनू बोर्ड 5) नामक कोरियाई PHP CMS वेबसाइट देखी, तो मैंने देखा कि PHP संस्करण अपग्रेड करने के बाद, कुछ लोगों को समर्थित नहीं किए गए सिंटैक्स और संस्करणों के कारण परेशानियों का सामना करना पड़ रहा था।

इसलिए, मैंने खोजबीन की और...

Reddit पर, मैंने पाया कि Rector (रेक्टर) नामक एक टूल माइग्रेशन में मदद करता है, इसलिए मैं आपको इसका उपयोग करने का तरीका बता रहा हूँ।



2015 में PHP 7.0 के लॉन्च के बाद से, PHP माइग्रेशन टूल जैसे PHP CS Fixer और Rector (रेक्टर) इत्यादि आए हैं।

Rector (रेक्टर) का उपयोग करना थोड़ा आसान लगता है।

Rector (रेक्टर) (उच्चारण: रेक्टर) PHP 5.3 से लेकर 8.2 तक के कोड को वांछित संस्करण के अनुसार सिंटैक्स चेक करता है और उसे ठीक करता है।


एक बात जो थोड़ी निराशाजनक है, वह यह है कि Rector (रेक्टर) एक स्टेटिक एनालाइज़र है, इसलिए यह रनटाइम पर आने वाली त्रुटियों का पता नहीं लगा पाता है।



Rector (रेक्टर) को काम करने के लिए, आपके सिस्टम में Composer (कम्पोजर) नामक PHP पैकेज मैनेजमेंट टूल स्थापित होना चाहिए।

1. Composer (कम्पोजर) को स्थापित करें।

2. अपने वर्तमान प्रोजेक्ट फोल्डर में Rector (रेक्टर) को स्थापित करें।

3. कॉन्फ़िगरेशन फाइल rector.php बनाएँ।



rector.php कॉन्फ़िगरेशन

समझने में आसानी के लिए, हम एक स्थिति मान लेते हैं।

मान लीजिए कि हमारा सोर्स कोड PHP 5.3 में लिखा गया है, और हम उसे PHP 7.4 में अपग्रेड करना चाहते हैं।

Rector (रेक्टर) का संस्करण 1.0.3 है।


RectorConfig::config() फंक्शन सोर्स कोड के फोल्डर और PHP संस्करण को सेट करता है।

withPhpSets फंक्शन उस PHP संस्करण के लिए फंक्शन को सेट करता है जिसमे अपग्रेड करना है।


यदि आपका Rector (रेक्टर) चलाने वाला PHP संस्करण PHP 8.0 है, तो


इस तरह से आप PHP संस्करण : true सेट कर सकते हैं।

लेकिन अगर PHP का वर्तमान संस्करण PHP 7.4 या उससे कम है,


तो फंक्शन में नाम वाले पैरामीटर सिंटैक्स का इस्तेमाल नहीं कर सकते हैं, इसलिए आपको वांछित संस्करण के लिए true सेट करना होगा।

Rector (रेक्टर) PHP 8.3 को सपोर्ट करता है, इसलिए अगर आपको PHP 7.4 सेट करना है, तो आप इस तरह से कर सकते हैं।


->withPaths([
__DIR__ , // rector.php वाली डायरेक्टरी।
])



जिन नियमों और फोल्डर को आप लागू नहीं करना चाहते हैं, उन्हें आप यहां निर्दिष्ट कर सकते हैं।

फोल्डर के लिए '/फोल्डर का नाम/*' का प्रयोग करें।

फाइल के लिए 'फाइल का नाम' का प्रयोग करें।


हमने 'SensitiveConstantNameRector' नियम को जोड़ा है।

Rector (रेक्टर) PHP एरे में undefined index होने पर उसे ढूंढ नहीं पाता है और उसे कांस्टेंट मानकर गलत तरीके से बदलने की कोशिश करता है। इसलिए, हमने इसे एक्सक्लूड नियमों में शामिल कर लिया है।

ये नियम कोड स्टाइल से संबंधित हैं, इसलिए हम इन्हें एक्सक्लूड कर रहे हैं।


रन करना

इसके दो तरीके हैं।

यह कमांड केवल कंसोल पर उन कोड को प्रिंट करेगा जिन्हें बदलने की ज़रूरत है।

सोर्स कोड जितना बड़ा होगा, उतनी ही ज़्यादा रैम की ज़रूरत होगी। इसलिए, आपको --memory-limit=2G फ़्लैग का इस्तेमाल करके रैम की मात्रा निर्धारित करनी होगी।


यह कमांड सोर्स कोड को सीधे बदल देगा।

इसमें बहुत सारे फ़्लैग हैं, इसलिए गलती से कुछ अनचाहे फ़्लैग लग भी सकते हैं। इसलिए, Git (गिट) के ज़रिए बदलावों की जांच करनी ज़रूरी है।



टिप्पणियाँ0

[php]उबंटू पर कोडइग्नाइटर 4 सेट करनाउबंटू में कोडइग्नाइटर 4 विकास वातावरण स्थापित करने के तरीके का परिचय देते हुए, अपाचे, PHP एक्सटेंशन इंस्टॉलेशन और कॉन्फ़िगरेशन प्रक्रिया का विस्तृत विवरण प्रदान करता है।
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

March 27, 2024

29 नवंबर 2024 की लेट ब्रेकिंग न्यूज़: Replit का पेड सब्सक्रिप्शन / अच्छी सॉफ्टवेयर डेवलपमेंट आदतें29 नवंबर 2024 को लिखे गए इस ब्लॉग पोस्ट में Replit के पेड सब्सक्रिप्शन के अनुभव को साझा किया गया है और अच्छी सॉफ्टवेयर डेवलपमेंट आदतों के 10 सुझाव दिए गए हैं। इसमें कुशल कोडिंग और रिफैक्टरिंग रणनीतियाँ, टेस्टिंग के महत्व आदि पर चर्चा की गई है।
Charles Lee
Charles Lee
Charles Lee
Charles Lee

November 29, 2024

बहुभाषी वेबसाइट निर्माण डायरी - 33वाँ दिन] वेबसाइट की सभी सेटिंग पूरी!33 दिनों में बहुभाषी वेबसाइट निर्माण पूरा! सर्वर स्थान परिवर्तन करके अनुवाद विलंब समस्या का समाधान करने के बाद सभी सेटिंग पूरी कर ली गई हैं। साइटमैप जमा करना सभी सेटिंग के बाद करना बेहतर होता है।
aghkuh1
aghkuh1
aghkuh1
aghkuh1

January 29, 2025

[python]पायथन बेसिक 1 पायथन मॉड्यूल को समझनापायथन मॉड्यूल वेरिएबल, फंक्शन, क्लास आदि को एक साथ रखने वाली फाइलें हैं, जो दूसरों द्वारा बनाए गए मॉड्यूल का उपयोग करने या सामान्य रूप से उपयोग किए जाने वाले वेरिएबल, फंक्शन आदि को एक साथ लाने के लिए उपयोगी हैं। `import` कीवर्ड का उपयोग करके मॉड्यूल को इम
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

March 27, 2024

ओपनसोर्स योगदान अनुभवयह लेख ओपनसोर्स योगदान अनुभव साझा करता है, डर पर काबू पाने और पहला कदम उठाने का साहस प्रदान करता है। छोटे सुधारों से शुरुआत करके आत्मविश्वास हासिल करने और बढ़ने की प्रक्रिया के बारे में बताता है।
seungwon
seungwon
seungwon
seungwon

May 3, 2025

[इफेक्टिव जावा] आइटम 2. यदि कंस्ट्रक्टर में कई पैरामीटर हैं तो बिल्डर पर विचार करेंजब कंस्ट्रक्टर में कई पैरामीटर होते हैं, तो बिल्डर पैटर्न का उपयोग करके पठनीयता और स्थिरता में सुधार किया जा सकता है। जावा बीन्स पैटर्न या चरणबद्ध कंस्ट्रक्टर पैटर्न की तुलना में बिल्डर पैटर्न अधिक प्रभावी है।
제이온
제이온
제이온
제이온

April 27, 2024