2012-11-26 11 views
10

क्या एक अमूर्त वर्ग हमेशा Abstract के साथ उपसर्ग किया जाना चाहिए और Interface (जब यह एक इंटरफ़ेस है) के साथ प्रत्यय होना चाहिए? क्या कोई मानक नामकरण सम्मेलन है, जो फ़ोल्डर संरचना/नामस्थानों के लिए पीएसआर -0 के समान है, लेकिन कक्षाओं के लिए?अमूर्त वर्गों और इंटरफेस के बारे में PHP नामकरण सम्मेलन

उत्तर

9

इसके लिए कोई सम्मेलन नहीं है; विशेष रूप से PHP में। यह सब व्यवस्थित किया जा सकता है हालांकि आप चाहें।

पीएचपी 5.3 में namespaces की वृद्धि के साथ

, मैं वास्तविक वर्ग के नाम करने के लिए Abstract या Interface उपसर्गों/प्रत्यय जोड़ने की जरूरत नहीं दिख रहा है।

बस चीजों को नाम दें!

+0

यह इंगित करने के लायक है कि यदि आप कानून द्वारा पीएसआर के अनुरूप होना चाहते हैं, तो यह निर्धारित करता है कि आपको इंटरफ़ेस के लिए पर्याप्त रूप से 'इंटरफेस' शामिल करना होगा। http://www.php-fig.org/bylaws/psr-naming-conventions/ – wired00

8

हालांकि कोई सम्मेलन नहीं है, मुझे लगता है कि यह संबंधित घटकों के लिए Abstract उपसर्ग और Interface प्रत्यय का उपयोग कर एक अच्छा अभ्यास है। यह एक नज़र में आईएमओ को बेहतर ढंग से समझने में मदद करता है।

1

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

मेरे अनुभव से, मैं "डिजाइन-बाय-कॉन्ट्रैक्ट" जैसे कुछ का सुझाव देना चाहूंगा। अपने अनुबंधों (इंटरफेस) को नाम दें जैसे कि आप अपनी कार्यान्वयन कक्षा का नाम लेंगे, और फिर अपने कार्यान्वयन को एक और विशिष्ट नाम दें (या MyContractNameImpl पर फ़ॉलबैक, जिसे ज्यादातर जावा I अनुमान से जाना जाता है)। इसके अलावा, कई आधुनिक आईडीई जानते हैं कि आपकी कक्षा एक इंटरफ़ेस या सार है, इसलिए वास्तव में इसे नाम देने की आवश्यकता नहीं है। मुझे उसी कारण से "IMyContract" नामक अनुबंध भी मिलते हैं, वास्तव में अच्छा नहीं।

1

का उपयोग करके अपने सार वर्गों और इंटरफेस का नामकरण:

  • सार *
  • * इंटरफ़ेस

अपने codebase, स्वच्छ अच्छा और अपनी टीम को स्पष्ट रखना होगा क्या प्रोटोटाइप, कर रहे हैं क्या अनुबंध हैं और ठोस कार्यान्वयन क्या हैं।

किसी भी परिस्थिति में हमारी उत्पादकता बढ़ाने के लिए नामकरण सम्मेलन यहां हैं, इसलिए "जैसा आप चाहें नाम" अच्छा विचार से बहुत दूर है।

भले ही एफआईजी समूह अमूर्त वर्गों और इंटरफेस के लिए नामकरण सम्मेलन का प्रस्ताव नहीं दे रहा है - यदि आप प्रमुख ओपन सोर्स PHP परियोजनाओं की जांच करते हैं, तो आप देखेंगे कि लगभग सभी इस सम्मेलन का उपयोग करते हैं।

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