DevToolPal
हि

PHP फ़ॉर्मैटर

आधिकारिक Prettier PHP प्लगइन से PHP कोड को PER Coding Style (PSR-12) में सुंदर बनाएँ।

लोकल रूप से चलता है, कभी अपलोड नहीं होता

विकल्प

इंडेंट
ब्रेसेस

इनपुट

0 कैरेक्टर · 0 B

आउटपुट

0 कैरेक्टर · 0 B

यह टूल क्या करता है

PHP फ़ॉर्मैटर बिखरे हुए, minified या असंगत इंडेंटेशन वाले PHP को साफ़ कोड में बदलता है जो कम्युनिटी के कोडिंग स्टैंडर्ड को फ़ॉलो करता है। यह आधुनिक सिंटैक्स संभालता है, जिसमें typed और readonly properties, constructor promotion, arrow functions, enums, match expressions और attributes शामिल हैं।

यह आधिकारिक PHP प्लगइन के साथ Prettier चलाता है, वही कॉम्बिनेशन जो कई Laravel और Symfony टीमें अपने एडिटर और pre-commit hooks में इस्तेमाल करती हैं, इसलिए नतीजा वही होता है जो आपकी tooling बनाती।

इसे कैसे इस्तेमाल करें

  1. PHP कोड पेस्ट करें, या .php फ़ाइल खोलें। छोटे snippets के लिए शुरुआती <?php टैग ज़रूरी नहीं है।
  2. टाइप करते ही फ़ॉर्मैट किया हुआ कोड दाईं ओर दिखता है।
  3. विकल्प बदलें:
    • इंडेंट: 4 स्पेस PSR स्टैंडर्ड है; 2 स्पेस और टैब भी उपलब्ध हैं।
    • लाइन की चौड़ाई: इससे लंबी लाइनें वहाँ तोड़ी जाती हैं जहाँ सिंटैक्स इजाज़त देता है।
    • ब्रेसेस: क्लास और फ़ंक्शन के ब्रेसेस अगली लाइन पर (PER / PSR-12) या उसी लाइन पर रखें।
    • PHP वर्ज़न: सबसे पुराना वर्ज़न जिस पर कोड चलना चाहिए।
    • मल्टी-लाइन लिस्ट के लिए सिंगल कोट्स और ट्रेलिंग कॉमा।
  4. नतीजा कॉपी या डाउनलोड करें।

अगर कोड में सिंटैक्स एरर है, तो मैसेज बताता है कि parser क्या उम्मीद कर रहा था और वह किस लाइन और कॉलम पर रुका।

उदाहरण

उदाहरण एक Laravel-स्टाइल कंट्रोलर है जिसमें सब कुछ ठूँस-ठूँसकर लिखा है: एक grouped use स्टेटमेंट, एक property array, constructor promotion, एक validation कॉल, एक लाइन में लिखा if और arrow function के साथ array_map। फ़ॉर्मैट करने के बाद हर मेथड का ब्रेस अपनी लाइन पर चला जाता है, ऑपरेटर और => के आसपास स्पेस आ जाते हैं, if की बॉडी खुल जाती है, और लंबी response()->json() कॉल्स हर लाइन पर एक array आइटम और ट्रेलिंग कॉमा के साथ तोड़ दी जाती हैं।

यह क्या नहीं बदलता

फ़ॉर्मैटर सिर्फ़ लेआउट बदलता है। यह वेरिएबल का नाम नहीं बदलता, use स्टेटमेंट का क्रम नहीं बदलता, array() को short सिंटैक्स में नहीं बदलता और लॉजिक ठीक नहीं करता। PHPDoc ब्लॉक समेत कमेंट्स बने रहते हैं और आसपास के कोड के साथ फिर से इंडेंट होते हैं।

सुझाव

  • diffs में बेवजह बदलाव से बचने के लिए वही लाइन की चौड़ाई और PHP वर्ज़न इस्तेमाल करें जो आपके प्रोजेक्ट की Prettier या PHP-CS-Fixer कॉन्फ़िगरेशन में है।
  • लॉग या stack trace से कॉपी किए snippet को फ़ॉर्मैट करने से उसे पढ़ना बहुत आसान हो जाता है।
  • अगर आप किसी issue में कोड शेयर करते हैं, तो पहले उसे फ़ॉर्मैट करें ताकि रिव्यू करने वाले इस पर ध्यान दे सकें कि कोड करता क्या है।

अक्सर पूछे जाने वाले सवाल

› यह कौन-सी कोडिंग स्टाइल फ़ॉलो करता है?

डिफ़ॉल्ट रूप से आउटपुट PER Coding Style फ़ॉलो करता है, जो PHP-FIG द्वारा प्रकाशित PSR-12 का उत्तराधिकारी है। क्लास और मेथड के ब्रेसेस अपनी अलग लाइन पर जाते हैं, कंट्रोल स्ट्रक्चर के ब्रेसेस उसी लाइन पर रहते हैं, और इंडेंटेशन चार स्पेस का होता है।

› PHP वर्ज़न क्यों मायने रखता है?

कुछ सिंटैक्स एक ख़ास वर्ज़न से ही मान्य होता है। उदाहरण के लिए, पैरामीटर लिस्ट में ट्रेलिंग कॉमा के लिए PHP 8.0 चाहिए, इसलिए पुराने टारगेट पर फ़ॉर्मैटर उन्हें नहीं जोड़ता। वह सबसे पुराना वर्ज़न चुनें जिस पर आपका कोड चलना चाहिए।

› क्या यह HTML और PHP मिली-जुली फ़ाइलें फ़ॉर्मैट कर सकता है?

हाँ। inline HTML और short echo टैग वाली टेम्पलेट फ़ाइलें सपोर्ट होती हैं। PHP वाले हिस्से फ़ॉर्मैट होते हैं और उनके बीच का HTML जैसा है वैसा रहता है।

› क्या मेरा कोड अपलोड होता है?

नहीं। फ़ॉर्मैटर पूरी तरह आपके ब्राउज़र में चलता है और किसी सर्वर पर कुछ नहीं भेजा जाता।