2008-12-12 15 views
7

मैंने ओपन सोर्स PHP प्रोजेक्ट्स के लिए बहुत से लोकप्रिय मानक मैनुअल पढ़े हैं।PHP - फ़ंक्शन/परिवर्तनीय नामकरण

वैरिएबल रिक्त स्थान के लिए अंडरस्कोर को बहुत अधिक लागू करता है, और बहुत सारे कैमेलकेस को लागू करता है।

क्या ग्लोबल फ़ंक्शन और चर क्लास विधियों/गुणों के लिए अलग-अलग नामित किए जाने चाहिए?

मुझे पता है कि सबसे महत्वपूर्ण बात स्थिरता है, लेकिन मैं इस पर कुछ विचार सुनना चाहता हूं।

आप क्या सलाह देंगे?

उत्तर

13

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

वैश्विक चर का उपयोग न करें।

मैं PHP में प्रक्रियात्मक कोडिंग से बचता हूं, मुझे लगता है कि चीजें व्यवस्थित रखने के लिए ओओपी आसान है। इसके अलावा, क्या PHP के पास पहले से ही इसके वैश्विक नामस्थान में पर्याप्त सामग्री नहीं है?

  • क्लासेस StudlyCaps हैं के रूप में उपयुक्त एकवचन या बहुवचन संज्ञाएं,: Item, , DB, Items

    आम तौर पर मैं रहना करने के लिए प्रयास करें। $column, $name

  • स्थिरांक विलक्षण अपर-केस संज्ञाएं हैं: DEBUG, TYPE_FOO
  • चर लोअरकेस संज्ञाएं, एकवचन या बहुवचन वे क्या पकड़ के आधार पर कर रहे हैं।
  • तरीके CamelCase हैं, और विलक्षण क्रियायें (get, perform, do), एक संज्ञा (एकवचन या बहुवचन) द्वारा पीछा के साथ शुरू का वर्णन क्या यह पर चल रही है या रिटर्न (getThing(), getThings())

यह निश्चित रूप से निर्भर करता है आप किसके लिए कोडिंग कर रहे हैं। अगर मैं PHP या पीयर कोडिंग कर रहा हूं, तो मैं camelCase का उपयोग करता हूं। अगर मैं पायथन/Django कर रहा हूँ, मैं under_scores का उपयोग करें। अगर मैं एलिस्प लिख रहा हूं, तो मैं डैश किए गए-विभाजक का उपयोग करता हूं।

+1

सहमत हुए, मैं ओओ सीखने की प्रगति में हूं और एक स्थिर वर्ग क्या है (मेरे सभी स्ट्रिंग फॉर्मेटर्स को वैश्विक नामस्थान से बाहर ले जाने के लिए) – alex

+0

असहमत, देखें [यह] (http://stackoverflow.com/a/1557799/1870054), वे वैश्विक चर के बारे में बात करते हैं, वे हमेशा खराब नहीं होते हैं। – wener

0

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

0

नोट: मैं अपने MySQL table_names के लिए अंडरस्कोर का उपयोग करें, मैं MySQL फ़ील्ड नाम के लिए UpperCamelCase का उपयोग करें:

चर नाम और वर्ग संपत्तियों के लिए

आम तौर पर मैं का उपयोग $ lowerCamelCase, लेकिन अगर यह एक क्षेत्र से मूल्य में शामिल है, मैं $ UpperCamelCase फ़ील्ड नाम का उपयोग करता हूं, या यदि यह किसी तालिका से डेटा की सरणी है, तो मैं $ table_name का उपयोग करूंगा। इस तरह से मैं grepSomeField या some_table के लिए आसानी से कर सकता हूं और इसका सब कुछ ढूंढ सकता हूं।

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

2

PHP में ही, लगभग हर मूल कार्य अंडरस्कोर अलग होता है।दस्तावेज में अधिकांश PHP कोड उदाहरण अंडरस्कोर अलग हैं।

ज्यादातर भाषाओं में मुझे लगता है कि ऊंट या पास्कल आवरण अधिक उपयुक्त है, लेकिन मुझे लगता है कि PHP में अंडरस्कोर अलगाव का उपयोग करने के लिए स्पष्ट इतिहास है।

0

मैं camelCase का उपयोग करना पसंद करता था, लेकिन बड़े अनुप्रयोगों में स्थिरता के लिए, मैंने कोडइग्निटर की शैली मार्गदर्शिका अपनाई है।

यहां तक ​​कि अगर आप अपने ढांचे का उपयोग नहीं है, आप काम है कि परिभाषित करने के लिए स्पष्ट और व्यापक शैलियों में चला गया सराहना कर सकते हैं: http://codeigniter.com/user_guide/general/styleguide.html

1

Zend Frameworks naming convention (कौन सा नाशपाती पर आधारित है) शायद निकटतम आप एक मानक के लिए आते हैं PHP दुनिया में। निजी तौर पर, मैं परिवर्तनीय नामों के लिए लोअरकेस_ंडर्सकोर का उपयोग करना पसंद करता हूं, लेकिन अन्यथा मैं ज़ेडएफ के सम्मेलन का अधिकतर पालन करता हूं।

0

मेरा लक्ष्य - जो भी नाम का विशिष्ट प्रारूप - अधिक जानकारी जोड़ रहा है। क्या नाम कोड की समझ में सुधार करता है और/या कुछ महत्वपूर्ण व्यक्त करता है?

यदि यह अच्छा करता है, तो आप इसमें सफल हुए हैं।

यदि नाम कुछ भी नहीं जोड़ता है, तो आपने इसका नामकरण क्यों परेशान किया?

http://caseysoftware.com/blog/useful-naming-conventions

0

मैं PEAR Coding Standards पढ़ने की सिफारिश करेंगे:

मैं इस सप्ताह की शुरुआत इस पर लिखा था। चूंकि पीएआर आधिकारिक PHP विस्तार और आवेदन रिपोजिटरी है, इसलिए इसे भाषा का आधिकारिक कोडिंग मानक माना जा सकता है।

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