Varien_Object
(এম 1) এবং DataObject
(এম 2) অন ম্যাজিক প্রাপ্তরা সাধারণ অনুশীলন, তবে ম্যাজেন্টো 2 এর সাথে এটি ব্যবহার করা ভুল বলে মনে করে।
ভাল:
- পড়তে / লিখতে সহজ
খারাপ
- কীগুলিতে অঙ্কগুলি ব্যবহার করার সময় এটি সমস্যার সৃষ্টি করে (দেখুন: ম্যাজেন্টো 2: বিভিন্ন উপায়ে সংগ্রহের ক্ষেত্র পান বা উটের কেস ব্যবহার করে কাস্টম পণ্য বৈশিষ্ট্য পান )
- কোড বিশ্লেষণ সরঞ্জামগুলি অ-বিদ্যমান পদ্ধতি সম্পর্কে অভিযোগ করে
প্রশ্ন
ম্যাজেন্টো 2 এর সাথে আমাদের দুটি নতুন পদ্ধতি রয়েছে:
getDataByKey($key)
getDataByPath($path)
এখনও ব্যবহার করার কোনও ভাল কারণ getData($key)
বা কোনও যাদুবিদ্যার কি আছে ?
সম্পাদনা:
@ বিনাই ধন্যবাদ আমি @method
পদ্ধতিটি উল্লেখ করিনি , কারণ আমার পদ্ধতিটি একেবারেই আলাদা ছিল।
এটি কেবল আইডিইকে সহায়তা করে, তবে অন্যান্য জিনিসে কোনও প্রভাব ফেলবে না।
এর উপর বেশ কয়েকটি মার্জড পিআর রয়েছে "মাইক্রো-অপ্টিমাইজেশন" এর (int)
পরিবর্তে intval()
লুপের বাইরে অ্যারের আকার (এমনকি ছোট অ্যারেগুলির জন্যও) কাস্টিংয়ের মতো ।
অন্যদিকে আছে
জাদুকরী গেটরস, মারিয়াস বর্ণনা হিসাবে কিছু "ওভারহেড" আছে ....
strtolower(trim(preg_replace('/([A-Z]|[0-9]+)/', "_$1", $name), '_'));
getData($key)
মেহটডগুলিকে আরও 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 */
করা আমার কাছে সেরা বলে মনে হচ্ছে। (?)