Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP

बिगिनर के लिए 30+ PHP सर्वोत्तम प्रैक्टिसेज

by
Read Time:13 minsLanguages:

Hindi (हिंदी) translation by Ashish Rampal (you can also view the original English article)

वेब पर प्रोग्रामिंग के लिए PHP सबसे व्यापक रूप से इस्तेमाल की जाने वाली भाषा है। मूल सिद्धांतों का दृढ़ समझ प्राप्त करने के इच्छुक बिगिनर के लिए यहां तीस सर्वोत्तम प्रैक्टिसेज हैं।

संपादक का नोटः "Best Practices" श्रृंखला तीन आर्टिकल्स के लिए मेरे बच्चे हैं। हालांकि, CI वीडियो श्रृंखला पर मेरा ध्यान देने के कारण, मैंने Glen को यह अगली प्रविष्टि देने का निर्णय लिया है। यह कहने के बाद, मैं अपना मुंह बंद रखने में बहुत अच्छा नहीं हूँ! मैंने सोचा था कि यह मजाकिया हो सकता है कि कुछ टिप्स के लिए कुछ रिबूटल जोड़ दें। मुझे आशा है कि वह मन नहीं करता!

1. PHP मैनुअल से दोस्ती करें

यदि आप PHP के लिए नए हैं, तो समय है कि PHP मैन्युअल से उत्कृष्टता से परिचित हो। PHP मैनुअल अविश्वसनीय रूप से पूरी तरह से है और प्रत्येक आर्टिकल के बाद वास्तव में सहायक प्रतिक्रियाएं हैं। प्रश्न पूछने या अपने आप से कोई मुद्दा निकालने की कोशिश करने से पहले, कुछ समय बचाएं और सीधे मैन्युअल पर जाएं। बाधाएं आपके प्रश्न का उत्तर पहले से ही PHP.net साइट पर सहायक आर्टिकल में बसे हैं।

2. Error Reporting चालू करें

PHP में Error reporting बहुत उपयोगी है। आपको अपने कोड में बग्स मिलिंगे जो आपने पहले कभी नहीं देखे होंगे, क्योंकि सभी बग्स एप्लिकेशन को काम का नहीं रखते हैं। रिपोर्टिंग में स्ट्रिक्टनेस के विभिन्न स्तर हैं जो आप उपयोग कर सकते हैं, लेकिन E_ALL आपको सबसे अधिक errors, critical और warnings को समान रूप से दिखाएगा।

एक बार जब आप अपना एप्लिकेशन प्रोडक्शन के लिए तैयार कर लेते हैं, तो आप error रिपोर्टिंग को बंद करना चाहेंगे, या आपके विज़िटर अजीब error देखेंगे जिन्हें वे समझ नहीं पा रहे हैं।

3. एक IDE को try करो

IDE (Integrated Development Environments) किसी भी डेवलपर के लिए उपयोगी टूल हैं। हालांकि वे सभी के लिए नहीं हैं, एक IDE की निश्चित रूप से जगह है। IDE जैसे इस प्रकार के उपकरण प्रदान करती हैं

  • सिंटेक्स हाइलाइटिंग
  • कोड कम्पलीशन
  • एरर वॉर्निंग्स
  • रीफैक्टरिंग (रीवर्किंग)

और कई अन्य विशेषताएं। बहुत सारी बहुत अच्छे IDE हैं जो PHP को सपोर्ट करते हैं।

Try an IDETry an IDETry an IDE

4. एक PHP फ्रेमवर्क को try करो

PHP के फ्रेमवर्क के एक्सपेरिमेंट से आप PHP के बारे में बहुत कुछ सीख सकते हैं। CakePHP या CodeIgniter जैसी फ़्रेमवर्क आपको PHP के साथ एक विशेषज्ञ होने के बिना, जल्दी से PHP एप्लीकेशन बनाने की अनुमति देता है। एक मायने में, वे लगभग PHP प्रशिक्षण की तरह हैं जो आपको दिखाते हैं कि PHP एप्लिकेशन किस तरह दिखना चाहिए, और आपको मूल्यवान प्रोग्रामिंग कॉन्सेप्ट्स (जैसे कि डिजाइन से लॉजिक को अलग करना, आदि) दिखाते हैं।

रिबटल: मैं व्यक्तिगत रूप से सुझाव नहीं देता कि बिगिनर एक फ्रेमवर्क का उपयोग करें। बुनियादी बातों को पहले जानें :)

5. DRY एप्रोच को सीखें

DRY का अर्थ है Don't Repeat Yourself, और यह एक मूल्यवान प्रोग्रामिंग कांसेप्ट है, चाहे लैंग्वेज कोई भी हो। DRY प्रोग्रामिंग, जैसा कि नाम का अर्थ है, यह सुनिश्चित करना है कि आप बेमानी कोड नहीं लिखते हैं। Reinhold Weber का एक उदाहरण है:

Learn the DRY approachLearn the DRY approachLearn the DRY approach

यह कोड...

अब DRY एप्रोच के साथ:

आप यहाँ और यहां DRY प्रोग्रामिंग सिद्धांत के बारे में अधिक पढ़ सकते हैं।

6. इंडेंट कोड और रीडाबिलिटी के लिए व्हाइट स्पेस का उपयोग करें

यदि आप अपने कोड में इंडेंटेशन और सफ़ेद स्थान का उपयोग नहीं करते हैं, तो परिणाम एक जैक्सन पोलैक पेंटिंग जैसा दिखता है। सुनिश्चित करें कि आपका कोड पठनीय और खोजना आसान है क्योंकि आप भविष्य में निश्चित रूप से इनमे बदलाव करेंगे। IDE और उन्नत टेक्स्ट एडिटर ऑटोमेटिकली इंडेंटेशन जोड़ सकते हैं।

7. "Tier" आपका कोड

अपने एप्लीकेशन को टियरिंग अलग-अलग भागों में कोड के विभिन्न कॉम्पोनेन्ट को अलग करने से ज्यादा कुछ नहीं है। यह आपको भविष्य में आसानी से अपना कोड बदलने की अनुमति देता है। नेटट्यूस के लेखक जेसन लेन्गस्टोर्फ ने अपने PHP ऍप्लिकेशन्स को आसान रखरखाव के लिए आसान बनाने के लिए एक उत्कृष्ट लेख लिखा है।

8. हमेशा <?php ?> का उपयोग करें

कई बार प्रोग्रामर PHP डिक्लेअर करते समय शॉर्टकट लेने का प्रयास करते हैं। यहां उनमे से कुछ सामान्य हैं:

हालांकि ये कुछ अक्षर बचाते हैं, पर यह सभी मेथड डेप्रेसटेड और अनौपचारिक हैं। स्टैण्डर्ड <?php ?> के साथ रहें, क्योंकि भविष्य के सभी संस्करणों में समर्थित होने की गारंटी होती है।

9. अर्थपूर्ण, लगातार नामकरण कन्वेंशन का प्रयोग करें

यह नामकरण केवल आपके खुद के अच्छे के लिए नहीं है। कुछ अन्य प्रोग्रामर के अनावश्यक नामकरण कन्वेंशन के माध्यम से अपना रास्ता ढूंढने की कोशिश करने के मुकाबले कुछ भी बुरा नहीं है। अपनी क्लासेज और फंक्शन्स के लिए समझने वाले नामों का उपयोग करके स्वयं और दूसरों की मदद करें।

10. कमेंट, कमेंट, कमेंट

कोड को अलग करने के लिए सफेद स्थान और इंडेंटेशन का उपयोग करने के अलावा, आप अपने कोड को एनोटेट करने के लिए इनलाइन कमैंट्स का भी उपयोग करना चाहेंगे। जब आप वापस जाने और कोड में कुछ ढूंढना चाहते हैं, या फिर आपको याद नहीं हो कि कोई विशेष फ़ंक्शन क्या था, तो आप बाद में अपने आपको धन्यवाद करेंगे। यह किसी और के लिए भी उपयोगी है, जिसे आपके कोड को देखने की जरूरत है।

11. MAMP/WAMP को इनस्टॉल करें

PHP के साथ उपयोग करने के लिए MySQL डेटाबेस सबसे लोकप्रिय प्रकार है (हालांकि यह केवल एकलौता नहीं है)। यदि आप अपने कंप्यूटर पर अपने PHP एप्लीकेशन को विकसित और परीक्षण करने के लिए एक स्थानीय एनवायरनमेंट इनस्टॉल करना चाहते हैं, तो MAMP (Mac) या WAMP (Windows) को इनस्टॉल करके देखें। अपने कंप्यूटर पर MySQL इनस्टॉल करना एक कठिन प्रक्रिया हो सकती है, और इन दोनों सॉफ्टवेयर पैकेज MySQL को ड्रॉप-इन इंस्टॉल कर देते हैं। साफ और सरल।

Install MAMP/WAMP

12. अपनी स्क्रिप्ट की लिमिट्स दें

अपने PHP स्क्रिप्ट पर समय सीमा डालना एक बहुत महत्वपूर्ण चीज है। ऐसे समय होते हैं जब आपकी स्क्रिप्ट विफल हो जाएंगी, और जब ऐसा होता हैं, तो आप इनफिनिट लूप और डेटाबेस कनेक्शन टाइमआउट से बचने के लिए set_time_limit फ़ंक्शन का उपयोग करना चाहेंगे। set_time_limit एक स्क्रिप्ट चलने वाली अधिकतम सेकंड्स की समय सीमा तय करेगी (डिफ़ॉल्ट 30 है)। उस समय के बाद, एक फेटल एरर थ्रो कर दिया जाएगा।

13. ऑब्जेक्ट का उपयोग करें (या OOP)

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग (OOP) एप्लिकेशन के भागों का प्रतिनिधित्व करने के लिए ऑब्जेक्ट का उपयोग करती है। आपके कोड को सेपरेट, लॉजिकल सेक्शन में तोड़ने का एक तरीका ही नहीं है, यह कोड पुनरावृत्ति को कम भी करता है और भविष्य में संशोधित करने में बहुत आसान बनाता है। यदि आप अधिक जानने की इच्छा रखते हैं, तो DevArticles के पास PHP के साथ ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग पर एक महान राइट-अप है।

14. सिंगल और डबल कोट के बीच के अंतर को जानें

स्ट्रिंग्स में सिंगल कोट्स का उपयोग करना अधिक एफ्फिसिएंट है क्योंकि पार्सर को बच निकलने वाले करैक्टर और दूसरी चीजों के लिए कोड के माध्यम से शिफ्ट नहीं करना पड़ता है जो कि डबल कोट चिह्नों की अनुमति देते हैं। हमेशा जब भी संभव हो सिंगल कोट चिह्नों का उपयोग करने का प्रयास करें।

रिबटल: वास्तव में, यह जरूरी नहीं कि यह सच है। बेंचमार्क परीक्षण यह दर्शाते हैं, जब बिना वेरिएबल के स्ट्रिंग्स का परीक्षण करते हैं, तो डबल कोट चिह्नों का उपयोग करना निश्चित प्रदर्शन लाभ देता हैं।

15. अपने वेबरूट में phpinfo() न रखें

Phpinfo एक सुंदर चीज है। बस एक PHP फ़ाइल बनाये जिसमे होगा

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

don't put phpinfo() in your web rootdon't put phpinfo() in your web rootdon't put phpinfo() in your web root

16. कभी भी, अपने यूज़र्स पर भरोसा नहीं करें

यदि आपके एप्लिकेशन में यूज़र्स इनपुट के लिए स्थान हैं, तो आपको हमेशा यह मानना चाहिए कि वे शरारती कोड इनपुट करने की कोशिश करेंगे। (हम इसका यह अर्थ नहीं कह रहे हैं कि आपके यूज़र्स बुरे लोग हैं। यह सिर्फ एक अच्छी मानसिकता है।) अपनी साइट को हैकर मुक्त रखने का एक शानदार तरीका हमेशा XSS हमलों से अपनी साइट की सुरक्षा के लिए अपने वेरिएबल का इनिशियलाइज़ करना है। PHP.net में इनिशियलाइज़ वेरिएबल के साथ एक पूर्ण रूप से सुरक्षित फॉर्म का एक उदाहरण है:

17. एन्क्रिप्शन के साथ पासवर्ड स्टोर करें

कई PHP बिगिनर अक्सर एन्क्रिप्शन को लागू किए बिना डेटाबेस में पासवर्ड जैसे संवेदनशील डेटा को इकट्ठा करते हैं। MD5 को पासवर्ड को एन्क्रिप्ट करने के बाद उसे डेटाबेस में डालें।

रिबटल: ध्यान रखें, हालांकि, MD5 hashes लंबे समय से समझौता किया गया है। वे पूरी तरह से सुरक्षित नहीं हैं, लेकिन, एक विशाल "rainbow table" के उपयोग के साथ, हैकर आपके हैश को रिफरेन्स कर सकते हैं। और भी अधिक सुरक्षा जोड़ने के लिए, salt को जोड़ने के बारे में भी विचार करें। एक salt मूल रूप से करैक्टर का एक अतिरिक्त सेट है जो आप यूज़र्स की स्ट्रिंग के लिए जोड़ते हैं।

18. डेटाबेस विज़ुअलाइज़ेशन डिजाइन टूल का उपयोग करें

यदि आपको अपने PHP एप्लीकेशन के लिए डेटाबेस की योजना और संशोधित करना मुश्किल हो रहा है, तो आप डेटाबेस विज़ुअलाइज़ेशन टूल का उपयोग करने की जांच कर सकते हैं। MySQL यूज़र्स आपके डेटाबेस को नेत्रहीन रूप से डिजाइन करने के लिए DBDesigner और MySQL Workbench के साथ काम कर सकते हैं।

use database visualization design toolsuse database visualization design toolsuse database visualization design tools

19. आउटपुट बफ़र का उपयोग करें

आउटपुट बफ़रिंग आपके PHP स्क्रिप्ट की कार्यक्षमता और गति को बहुत सुधारने का एक आसान तरीका है। आउटपुट बफ़रिंग के बिना, आपकी स्क्रिप्ट पेज पर HTML दिखाएगी क्योंकि यह प्रोसेस में है - टुकड़ों में। आउटपुट बफरींग को जोड़ना PHP में HTML को वेरिएबल के रूप में स्टोर करने की अनुमति देता है और इसे ब्राउज़र में एक टुकड़े की तरह भेजता है.

आउटपुट बफ़रिंग को सक्षम करने के लिए, बस फ़ाइल के शीर्ष पर जैसे ob_start() जोड़ें।


रिबटल: यद्यपि जरूरी नहीं, इसके चलते सामान्य रूप से आगे बढ़ने और "ob_end_flush();" संलग्न करने के लिए एक अच्छा अभ्यास माना जाता है; डॉक्यूमेंट के नीचे भी कार्य करना। अनुलेख HTML को भी संक्षिप्त करना चाहते हैं? बस "ob_start();" को बदलें; "ob_start('ob_gzhandler')" के साथ;

अधिक जानकारी के लिए इस Dev-tips article देखें।

20. SQL इंजेक्शन से अपनी स्क्रिप्ट को सुरक्षित रखें

यदि आप अपने करैक्टर SQL स्ट्रिंग में इस्तेमाल नहीं करते हैं, तो आपका कोड SQL इंजेक्शन के लिए कमजोर है। आप या तो mysql_real_escape_string का उपयोग करके, या prepared स्टेटमेंट का उपयोग कर से बच सकते हैं।

यहां एक्शन में mysql_real_escape_string का एक उदाहरण है:

और एक prepared स्टेटमेंट:

prepared स्टेटमेंट का उपयोग करके, हम यूज़र्स के इनपुट किए गए डेटा सीधे हमारे क्वेरी में एम्बेड नहीं करते हैं। इसके बजाय, हम वैल्यूज (और एस्केपिंग) को क्वेरी के साथ बाइंड करने के लिए "bind_param" मेथड का उपयोग करते हैं। एक बार में कई CRUD स्टेटमेंट एक्सेक्यूटे करते समय अधिक सुरक्षित, और, विशेषकर, तेज।

Nettuts पर सुरक्षित PHP एप्लीकेशन को बनाने के बारे में अधिक पढ़ें।

21. ORM को try करो

यदि आप ऑब्जेक्ट ओरिएंटेड PHP लिख रहे हैं, तो आप निफ्टी ऑब्जेक्ट रिलेशनल मैपिंग (ORM) का उपयोग कर सकते हैं। ORM आपको रिलेशनल डेटाबेस और ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषाओं के बीच डेटा कन्वर्ट करने की अनुमति देता है। संक्षेप में: ORM आपको डेटाबेस के साथ काम करने की अनुमति देता है जिस तरह से आप PHP में क्लासेज और ऑब्जेक्ट्स के साथ काम करते हैं।

PHP के लिए बहुत सारी ORM लाइब्रेरीज हैं, जैसे कि Propel, और ORM CakePHP जैसे PHP फ़्रेमवर्क में बनाया जाते है।

22. Cache डेटाबेस-ड्रिवेन पेजेज

डेटाबेस-ड्रिवेन PHP पेजेज को कैशिंग करना आपके स्क्रिप्ट के लोड और प्रदर्शन को बेहतर बनाने के लिए एक शानदार विचार है। यह वास्तव में मुश्किल नहीं है कि हमारे अच्छे दोस्त, ob_start() की मदद से कंटेंट की स्टैटिक फ़ाइलों को बनाने और पुनः प्राप्त करना मुश्किल हो। यहाँ एक उदाहरण Snipe.net से लिया गया है:

कोड का यह बिट 2 सेकंड से कम पुराने पेज का एक कैश्ड संस्करण का उपयोग करेगा।

23. कैशिंग सिस्टम का उपयोग करें

यदि आप एक अधिक मजबूत कैशिंग सिस्टम चाहते हैं, तो PHP के लिए कुछ कैशिंग स्क्रिप्ट्स हैं जो उपरोक्त उदाहरण की तुलना में अधिक पूर्ण हो सकती हैं।

use a caching systemuse a caching systemuse a caching system

24. वैलिडेट कुकी डेटा

कुकी डेटा, जैसे वेब पर दिया गया कोई भी डेटा, हानिकारक हो सकता हैं। आप कुकी डेटा को htmlspecialchars() या mysql_real_escape_string() के साथ वैलिड कर सकते हैं।

25. स्टैटिक फ़ाइल कैशिंग सिस्टम का उपयोग करें

मेमकैच जैसे डेटाबेस कैशिंग सिस्टम का उपयोग करने के अलावा, आप अपने PHP ऍप्लिकेशन्स में प्रदर्शन बढ़ाने के लिए टेम्प्लेटिंग सिस्टम की भी कोशिश कर सकते हैं। Smarty एक मजबूत टेम्पलेटिंग सिस्टम है जिसमें कैशिंग है।

26. अपने कोड को प्रोफ़ाइल करें

Xdebug जैसे उपकरण के साथ अपना कोड को प्रोफाइलिंग करना आपको अपने PHP कोड में बाधाओं और अन्य संभावित समस्याओं को जल्दी से स्थानांतरित करने में मदद कर सकता है। Netbeans जैसे कुछ IDEs के पास PHP प्रोफाइलिंग क्षमताएं भी हैं।

27. स्टैण्डर्ड के साथ कोड करना

एक बार जब आप PHP के रस्सी के नीचे मिल गए हैं, तो आप एक स्टैण्डर्ड कोडिंग के बारे में सीखना शुरू कर सकते हैं। वहाँ स्टैंडर्ड्स के बीच मतभेद हैं (Zend और Pear कहते हैं), और एक फाइंड करना और इसके साथ चिपके हुए लंबे समय में आपके कोडिंग की निरंतरता के साथ मदद करेंगे।

28. लूप के बाहर फ़ंक्शन रखें

जब आप लूप के अंदर फ़ंक्शंस जोड़ते हैं तो आप प्रदर्शन का हिट लेते हैं। आपके पास लूप जितना बड़ा होगा, उतना एक्सेक्यूशन का समय लगेगा। अतिरिक्त समय और कोड की लाइन लें और फ़ंक्शन को लूप के बाहर रखें।


एडिटर का नोट: इसके बारे में सोचें। लूप से जितना हो सके उतने ऑपरेशन को हटाएं। क्या आपको वास्तव में लूप के प्रत्येक इटरेशन के लिए उस वेरिएबल को बनाने की आवश्यकता है? क्या आपको वास्तव में हर बार फंक्शन बनाने की आवश्यकता है? बिलकूल नही। :)

29. अतिरिक्त वेरिएबल को कॉपी नहीं करें

कुछ लोग कोशिश करते हैं और अपने कोड को पूर्वनिर्धारित वेरिएबल को छोटे-नाम के वेरिएबल में नकल करके अधिक आकर्षक बनाते हैं। यह बेमानी है और संभावित रूप से आपकी स्क्रिप्ट की मेमोरी को दुगुना कर सकते है। Google कोड में वेरिएबल के उपयोग के खराब और अच्छे उदाहरण हैं:

खराब

अच्छा


रिबटल: "मेमोरी को डबल करना" के बारे में कमेंट के संदर्भ में, यह वास्तव में एक आम गलत धारणा है। PHP "कॉपी-ऑन-राइट" मेमोरी मैनेजमेंट लागू करता है। इसका मूल रूप से मतलब है कि आप वास्तव में नकल किए गए डेटा के बारे में चिंता किए बिना आप जितना चाहें उतने वेरिएबल के लिए एक वैल्यू असाइन कर सकते हैं। हालांकि यह तर्कसंगत है कि "अच्छा" उदाहरण ऊपर उदाहरण के लिए क्लीनर कोड बना सकता है, मुझे बहुत संदेह है कि यह तेज़ है।

30. PHP के नवीनतम संस्करण में अपग्रेड करें

हालांकि यह एक सामान्य ज्ञान की बात की तरह लगता है, बहुत से लोग PHP को जितनी बार करना चाहिए उतनी बार अपग्रेड नहीं करते हैं। PHP 4 और PHP 5 के बीच बहुत ज्यादा प्रदर्शन बढ़त है। यह सुनिश्चित करने के लिए कि आप अप टू डेट हैं, अपने सर्वर की जांच करें।

31. डेटाबेस क्वेरीज़ की संख्या कम करें

किसी भी तरह से कि आप डेटाबेस क्वेरीज़ की संख्या में कटौती कर सकते हैं, तो आपकी PHP स्क्रिप्ट बेहतर प्रदर्शन करेंगे। ऐसे उपकरण हैं जैसे Stace (Unix) और Process Explorer (Windows) जो आपको अनावश्यक प्रोसेस को खोजने की अनुमति देते हैं और आप उन्हें कैसे जोड़ सकते हैं।

Reduce the number of database queriesReduce the number of database queriesReduce the number of database queries

32. सहायता के लिए पूछने से डरो मत

यह केवल मानवीय स्वभाव है कि हम इस तथ्य को छिपाना चाहते हैं कि हमें किसी खास विषय के बारे में अधिक जानकारी नहीं है। कोई भी n00b होना पसंद नहीं कर सकता! लेकिन बिना पूछे हम कैसे सीखने जा रहे हैं? अधिक अनुभवी PHP डेवलपर्स प्रश्न पूछने के लिए फ़ोरम्स, IRC, StackOverflow का उपयोग करने के लिए स्वतंत्र महसूस करें। PHP वेबसाइट पर PHP मदद पाने के लिए एक पेज है।

अपने खुद का कोई rebuttals है? मुझे यकीन है आप के पास है! चलो बहस शुरू करते हैं।

  • Twitter पर हमें का फॉलो करें, या अधिक दैनिक वेब डेवलपमेंट tuts और लेख के लिए NETTUTS RSS Feed की सदस्यता लें।


Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.