আপনি যদি নিজের এক্সটেনশন বিক্রি করেন বা অন্যের সাথে ভাগ করে নেন তবে মানব পাঠযোগ্য এমন কোডটি লেখার বিষয়ে ভাবুন।
- পদ্ধতি খুব জটিল না
- আপনার পদ্ধতিতে DOC ব্লক যুক্ত করুন *
$productIds
পরিবর্তে যথাযথ চলক নাম ব্যবহার করুন$ids
- পদ্ধতিগুলির জন্য একই,
public function myOnProductSaveMethod() {...}
বলেছেন ... কিছুই নয়, তবে tryDisableInternetOnProductSave()
পরিকল্পনার ইঙ্গিত দিতে হবে
- প্রকারের ইঙ্গিতগুলি ব্যবহার করুন যেখানে এটি উপলব্ধি করে
someMethod(Varien_Data_Db_Collection $collection)
- এড়াতে যাদু সংখ্যা এবং স্ট্রিং **
- যদি আপনি মডেলগুলিকে পর্যবেক্ষকদের আরও ভাল অ্যাক্সেসযোগ্য করে তুলতে
$_eventPrefix
সম্পত্তি সেট (এবং $_eventObject
) ব্যবহার করেন
- যদি আপনি সিস্টেম কনফিগারেশন ক্ষেত্রগুলি যোগ করেন
- ডিফল্ট মান সেট করুন
config.xml
<validate>
ক্ষেত্রগুলিতে নোড যুক্ত করুনsystem.xml
- এসিএল সংস্থানগুলিতে যুক্ত করুন
adminhtml.xml
- অ্যাডমিন ব্যাকএন্ডে অকেজো / বিজ্ঞাপনের প্রথম-স্তরের মেনু এন্ট্রি যুক্ত করবেন না - টপবারে বা কনফিগার বিভাগেও নয়
- সমস্ত নিয়ামক ক্রিয়াকলাপের জন্য এসিএল সংস্থান যুক্ত করুন (ম্যাসেজও খুব!)
- আপনার প্রশ্নগুলি ডিবি সারণির উপসর্গের সাথে কাজ করে তা নিশ্চিত করুন
- (না) পশ্চাদপদ সামঞ্জস্যতা সম্পর্কে চিন্তা করুন ( এটি সত্যই মতামত ভিত্তিক)
Mysql4
ক্লাস সমর্থন করবেন না
- অবহেলা পদ্ধতি ব্যবহার করবেন না
- আপনার উচ্ছেদ প্রতিটি ক্ষেত্রে প্রত্যাশার মতো কাজ করে তা নিশ্চিত করুন - ইউনিট টেস্ট যুক্ত করুন (পিএইচপিউনাইট উদাহরণস্বরূপ)
- ডেভিড শিষ্টাচার ছাড়াও ...
composer.json
স্থাপনা আরও সহজ করতে আরও একটি যুক্ত করুন
- যেহেতু PHP5.6 EOL, তাই আপনার কোডটি PHP7- এর জন্য লিখুন।
declare(strict_types=1);
আপনার ইন- এবং আউটপুট প্রকারগুলি ব্যবহার এবং সংজ্ঞা দিন
- Magento2: স্ট্যাটিক কোডের মাধ্যমে আপনাকে নিজের কোডটি চেক মত সরঞ্জাম বিশ্লেষণ phpstan । যাদু পদ্ধতি এখানে সমর্থন । (সর্বশেষ প্রতিশ্রুতি ২.৩ / ২.২ এর আগে ২.৩ এর সাথে কাজ করে - পিএইচপিস্তান ০.৮.৫ প্রয়োজন)
* ডওসি ব্লক:
আপনি যদি পিএসআর 2 স্ট্যান্ডার্ড বা পিএইচপিএমডি-এর জন্য PHP_CodeSniffer সহ আপনার ম্যাজেন্টো -1 কোডটি পরীক্ষা করেন তবে আপনি সম্ভবত এই লাইনগুলি যুক্ত করতে চান (যেখানে এটি অর্থবোধ করে) ...
- ক্লাসে
@phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace
@phpcs:disable PSR2.Classes.PropertyDeclaration.Underscore
- উত্তরাধিকারসূত্রে প্রাপ্ত বৈশিষ্ট্য
@phpcs:disable Squiz.Classes.ValidClassName.NotCamelCaps
@SuppressWarnings(PHPMD.CamelCaseClassName)
@SuppressWarnings(PHPMD.CamelCasePropertyName)
- উত্তরাধিকারসূত্রে প্রাপ্ত বৈশিষ্ট্য
- পদ্ধতিতে
@SuppressWarnings(PHPMD.CamelCaseMethodName)
- উত্তরাধিকারসূত্রে প্রাপ্ত পদ্ধতিগুলি
@SuppressWarnings(PHPMD.StaticAccess)
- আপনি যদি Mage::
অন্য স্ট্যাটিক কল ব্যবহার করেন
** প্রায়শই ব্যবহৃত:
- অ্যাডমিন স্টোর আইডি
0
> Mage_Core_Model_App::ADMIN_STORE_ID
- পণ্য
status
1
> Mage_Catalog_Model_Product_Status::STATUS_ENABLED
2
> Mage_Catalog_Model_Product_Status::STATUS_DISABLED
( 0
প্রত্যাশিত হিসাবে না )
- পণ্য
type
simple
> Mage_Catalog_Model_Product_Type::TYPE_SIMPLE
bundle
> Mage_Catalog_Model_Product_Type::TYPE_BUNDLE
configurable
> Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE
grouped
> Mage_Catalog_Model_Product_Type::TYPE_GROUPED
virtual
> Mage_Catalog_Model_Product_Type::TYPE_VIRTUAL
- পণ্য
visibity
1
> Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE
2
> Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_CATALOG
3
> Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_SEARCH
4
> Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH
এসকিউএল আদেশের জন্য একই ASC
বনাম Zend_Db_Select::SQL_ASC
(উদাহরণস্বরূপ) ।
বলছে "এটা nessessary নয় কারণ এটি আগের দিন বদলাবে না" ? উদাহরণস্বরূপ সত্ত্বার আইডি catalog_product
আইটেমের জন্য ম্যাজেন্টো 1.5 এবং 1.9 এর মধ্যে কোথাও পরিবর্তন 10
হয়েছে 4
, যাতে এটি আপনার এক্সটেনশনটি ভেঙে দিতে পারে:
$collection->addFieldToFilter('entity_type_id', 10)
পরিবর্তে এটি ব্যবহার করে একটি ক্যোয়ারী যুক্ত করা হয় তবে আপনি নিরাপদ থাকবেন ...
$entityTypeId = Mage::getModel('eav/config')
->getEntityType(Mage_Catalog_Model_Product::ENTITY)
->getEntityTypeId();
$collection->addFieldToFilter('entity_type_id', $entityTypeId)