2013-06-14 9 views
5

में ओवरराइड और फिर से लिखने के बीच अंतर Magento में दोनों शब्द ओवरराइड और फिर से लिखना समान है। मैंने इसके लिए बहुत कुछ खोजा है लेकिन कोई जवाब नहीं मिला है।Magento

धन्यवाद

उत्तर

7

लघु जवाब: हां, हालांकि यह आप से बात जो पर निर्भर करता है।

सभी पुनर्लेखन ओवरराइड हैं, लेकिन सभी ओवरराइड को फिर से लिखते नहीं हैं। Magento में को फिर से लिखें केवल कॉन्फ़िगरेशन-आधारित क्लास ओवरराइड का संदर्भ लें। फैक्टरी तरीकों MVC प्रकार का दृष्टांत को ढांचे द्वारा किया जाता है:

  • Mage_Core_Model_Layout->createBlock()
  • Mage::helper()
  • Mage::getModel()
  • Mage::getResourceModel()
  • आदि ....

इन विधियों से मेल आम तौर पर एक वर्ग समूह (उदाहरण के लिए catalog) कक्षा उपसर्ग (ई। जी। Mage_Catalog_Model) किसी विशेष वर्ग को तुरंत चालू करने के लिए (उदा। Mage::getModel('catalog/product') उपज Mage_Catalog_Model_Product)। यह मानचित्रण डेवलपर्स को कक्षा तर्क के साथ जुड़े एक निश्चित xpath को निर्दिष्ट करने की अनुमति देता है (उदा। 'catalog/product' & global/models/catalog/rewrite/product) तत्काल करने के लिए वैकल्पिक श्रेणी निर्दिष्ट करने के लिए। वहां से डेवलपर की जिम्मेदारी उचित ओवरराइडिंग & विस्तारित व्यवहार को प्राप्त करने के लिए उपयुक्त के रूप में उपयोग करने की ज़िम्मेदारी है।

ओवरराइड प्राप्त करने के लिए अन्य तंत्र हैं, जिनमें से सबसे आम "तथाकथित पथ हैक" है, जो "निचले" ऑटोलोड निर्देशिकाओं से कक्षाओं के लिए उच्च स्तर की निर्देशिकाओं में परिभाषित (पुनः) की अनुमति देता है वरीयता का निम्न क्रम (ध्यान दें कि एप्लिकेशन/कोड/स्थानीय/):

  • एप्लिकेशन/कोड/समुदाय/
  • एप्लिकेशन/कोड/कोर/
  • lib/

ओवरराइड की इस शैली को कोर कोड बदलने का अंतिम मामला माध्यम माना जाना चाहिए। इसमें वैध उपयोग के मामले हैं (विशेष रूप से डीआरवाई का पालन करने के लिए), लेकिन अपग्रेड में गैर-स्पष्ट हो सकता है।

+0

बहुत बहुत धन्यवाद बेन !! –