2011-03-23 9 views
6

के समान php में मॉड्यूल की अवधारणा क्या रूबी मॉड्यूल php में निर्माण के समान कुछ है?रूबी

मूल रूप से मैं एक के लिए एक मॉड्यूल बना मिश्रण में b/w विभिन्न वर्गों आदि

को मैं जानता हूँ कि php mixins की अवधारणा ख विभिन्न वर्गों w/है, लेकिन मॉड्यूल बारे में निश्चित नहीं की जरूरत है।

+0

[सार कक्षाएं और इंटरफेस] (http://stackoverflow.com/q/15960729/263858) के बीच के अंतर पर इस चर्चा को देखें। –

उत्तर

10

PHP में रूबी के समान तरीके से मिश्रित नहीं होते हैं। यही है, आप परिभाषित किए जाने के बाद किसी वर्ग के बारे में कुछ भी नहीं बदल सकते हैं, और बनाए जाने के बाद आप किसी उदाहरण में नए तरीके से संवेदना नहीं जोड़ सकते हैं। PHP केवल में सादा पुरानी वेनिला एकल-विरासत तंत्र, इंटरफेस, और composing traits 5.4 में है।

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

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

1: जब आप ऑब्जेक्ट को संदर्भित करके किसी ऑब्जेक्ट को बनाए जाने के बाद इंस्टेंस चर (गुण) जोड़ सकते हैं, तो यह एक बुरा अभ्यास माना जाता है। गुणों में अज्ञात फ़ंक्शंस भी हो सकते हैं, लेकिन जोड़ने के तरीके को अनुकरण करने के लिए इस तरह के गुणों का दुरुपयोग करना भी बुरा अभ्यास है।

+0

मुझे आपका उदाहरण पसंद है फिर भी नामस्थान स्थिरांक 5.3 में मौजूद हैं। –