Varien_Object
(M1) और DataObject
(M2) पर मैजिक गेटर्स आम बात है, लेकिन Magento 2 के साथ इसका इस्तेमाल करना गलत लगता है।
अच्छा:
- पढ़ने / लिखने में आसान
खराब
- यह कुंजियों में अंकों का उपयोग करते समय समस्याओं का कारण बनता है (देखें: Magento 2: अलग तरीके से संग्रह का क्षेत्र प्राप्त करें या कस्टम उत्पाद विशेषता का उपयोग करें )
- कोड विश्लेषण उपकरण गैर-मौजूदा तरीकों के बारे में शिकायत करते हैं
सवाल
Magento 2 के साथ हमारे पास दो नए तरीके हैं:
getDataByKey($key)
getDataByPath($path)
क्या अभी भी उपयोग करने का कोई अच्छा कारण है getData($key)
या कोई जादू पाने वाला है?
संपादित करें:
@Vinai धन्यवाद मैंने @method
विधि का उल्लेख नहीं किया , क्योंकि मेरा दृष्टिकोण काफी अलग था।
यह केवल आईडीई की मदद करता है, लेकिन अन्य चीजों पर कोई प्रभाव नहीं पड़ता है।
उस पर कई mergedf पीआरएस कर रहे हैं करने के लिए कास्टिंग की तरह "सूक्ष्म अनुकूलन" कर रहे हैं (int)
के बजाय intval()
या सरणी आकार के बाहर छोरों प्राप्त (यहां तक कि छोटे सरणियों के लिए)।
दूसरी ओर हैं
जादुई गेटर्स, जिसका कुछ "ओवरहेड" है जैसा कि मारियस ने वर्णित किया है ...।
strtolower(trim(preg_replace('/([A-Z]|[0-9]+)/', "_$1", $name), '_'));
getData($key)
mehtods को भी 2-3 अतिरिक्त जांच करनी होगी ...if ('' === $key) {
if (strpos($key, '/')) {
if ($index !== null) {
अपने कोड के लिए वास्तविक तरीकों को पसंद करने के लिए पूरी तरह से सहमत हैं, लेकिन एक ही मामलों में यह संभवतः नहीं है ... जैसे कि आपने एक कस्टम ईवेंट बनाया है ...
$value = $observer->getVar_1();
$value = $observer->getData('var_1');
$value = $observer->getDataByKey('var_1');
3 का उपयोग करना /** @var some $value */
मेरे लिए सबसे अच्छा लगता है। (?)