কিভাবে কাস্টম এক্সটেনশন লিখবেন?


143

কারণ ইদানীং ফ্রি এবং বাণিজ্যিক এক্সটেনশন নিয়ে আমার প্রচুর সমস্যা হয়েছিল আমি এই প্রশ্নটি জিজ্ঞাসা করার এবং একটি এক্সটেনশন লেখার সময় আমি সাধারণত যে পদক্ষেপগুলি অনুসরণ করি তা দিয়ে উত্তর দেওয়ার সিদ্ধান্ত নিয়েছি। উত্তরটি সম্পাদনা করতে বা একটি নতুন যুক্ত করতে নির্দ্বিধায়।
বেশিরভাগ ক্ষেত্রে কোনও এক্সটেনশান বা থিম ইনস্টল করার সময় আমার প্রয়োজনীয় সমস্ত পরিবেশে এটি কাজ করতে আমাকে কয়েক ঘন্টা (কখনও কখনও বেশি, কখনও কখনও কম) ব্যয় করতে হয়:

  • দেব: সাধারণত localhostযেখানে প্রকল্পটি সাবফোল্ডারে থাকে
  • প্রিপ্রড এবং লাইভ

বড় এক্সটেনশান সরবরাহকারীদের এক্সটেনশনের পরেও এটি ঘটেছে (আমি সত্যিকার অর্থে পাগল না হওয়া পর্যন্ত এখানে নামহীন থাকা উচিত এবং তাদের নাম এখানে না যুক্ত করা উচিত)
সুতরাং মূল প্রশ্নটি..মানের বিষয়টি নিশ্চিত করার জন্য কোনও এক্সটেনশন লেখার সময় আমার কী পদক্ষেপগুলি বিবেচনা করা উচিত? কোডটি এবং কোনও প্রযুক্তিগত এবং অ-প্রযুক্তিগত ব্যক্তির পক্ষে এটি ব্যবহার করা এবং কোনও প্রযুক্তিগত ব্যক্তির পক্ষে এটি পরিবর্তন করা সহজ করে তোলে?


11
দেখে মনে হচ্ছে যে কোনও বৃহত এক্সটেনশান সরবরাহকারী এই প্রশ্নটি পছন্দ করেন না এবং এটিকে অবহেলা করেছিলেন। :)
মারিউস

1
ব্যক্তিগতভাবে, সম্পূর্ণভাবে উইমাইন্ডের সাথে কোনও সমস্যা নেই, তবে তারা তাদের কোডটি এনক্রিপ্ট করে এবং এখনও "প্রিমিয়াম অংশীদার" :( (উদাহরণস্বরূপ)
এসভি

উত্তর:


185

এখানে আমি সাধারণত যা করি:

  1. সর্বদা সাথে বিকাশ error_reporting
  2. সর্বদা isDeveloperModeসেট সঙ্গে বিকাশ trueSetEnv MAGE_IS_DEVELOPER_MODE 1আপনার httpd.confফাইলটিতে কেবল যুক্ত করুন (বা এনগিনেক্স বা অন্য কোনও কিছুর জন্য সংশ্লিষ্ট ফাইল)
  3. যদি এক্সটেনশানটি কোনও মূল কার্যকারিতার সাথে লিঙ্ক থাকে তবে ডিক্লেয়ারেশন ফাইলে নির্ভরতা যুক্ত করুন <depends><Mage_Catalog /></depend>
  4. যদি মডিউলটি সম্প্রদায়ের ব্যবহারের জন্য communityহয় তবে বিকাশকারীদের কোডটি সরাসরি কোড পরিবর্তন না করে কিছু ক্লাস ওভাররাইড করার সুযোগ দেওয়ার জন্য কোডপুল হিসাবে ব্যবহার করুন
  5. আপনার ফ্রন্টএন্ড ডিজাইন ফাইলগুলিকে app/design/frontend/base/default সমস্ত থিমের জন্য উপলব্ধ করতে রাখুন ।
  6. আপনার অ্যাডমিন ডিজাইন ফাইলগুলিতে রাখুন app/design/adminhtml/default/defaultএবং প্রশাসক থিম পরিবর্তন করবেন না। আমি এটি আমার মডিউলগুলির একটিতে পরিবর্তন করতে চাই।
  7. আপনার লেআউট ফাইলের নাম এবং টেমপ্লেট ফোল্ডারের নামটিকে কোম্পানির নামের সাথে এগুলি পৃথক করা সহজ করার জন্য উপস্থাপন করুন। easylife_articles.xmlএবংapp/design/.../easylife_articles
  8. আপনার স্থিতিশীল সংস্থানসমূহ (জাভাস্ক্রিপ্ট, সিএসএস এবং চিত্রগুলি) টেমপ্লেট ফাইলগুলির মতো একই ফোল্ডারে রাখুন easylife_articles/images/doh.png
  9. কীভাবে এক্সটেনশানটি আনইনস্টল করবেন সেগুলির সাথে একটি সাধারণ পাঠ্য ফাইল সংযুক্ত করুন: কোন ফাইলগুলি অপসারণ করা দরকার, কোন টেবিলগুলি বাদ দিতে হবে, কোন কনফিগারেশন সেটিংসটি core_config_dataটেবিল থেকে সরানো দরকার ।
  10. মডেল, ব্লক বা সহায়কগুলিতে সরাসরি প্রশ্নগুলি লিখবেন না, এর জন্য কোনও সংস্থান মডেল ব্যবহার করুন।
  11. সরাসরি টেবিলের নাম ব্যবহার করে কোয়েরি লিখবেন না Select * from sales_flat_order where ...। একটি ব্যবহার Zend_Selectকরে টেবিলের নামগুলি ব্যবহার করে রূপান্তর করুন ->getTable('sales/order')
  12. jsটেমপ্লেটে ফাইলগুলি অন্তর্ভুক্ত করতে বেস url ব্যবহার করুন । ভুল <script type="text/javascript" src="../js/some.js"></script>অধিকার <script type="text/javascript" src="<?php echo Mage::getBaseUrl('js').'some.js'?>"></script>
  13. প্রয়োজনীয় না হলে পুনরায় লেখার ক্লাস করবেন না। পর্যবেক্ষকগুলি ব্যবহার করুন এবং যদি আপনি ওভাররাইড করতে চেয়েছিলেন এমন কোনও শ্রেণীর প্যারামিটার এবং উদাহরণ হিসাবে প্রাপ্ত সহায়ক সহায়ক ব্যবহার করা সম্ভব না হয়। ভুল : Mage_Catalog_Model_Productপদ্ধতিটি যুক্ত করতে ওভাররাইড করুন getProductArticles()ঠিক । আপনার সহায়ক যোগ করুন getProductArticles(Mage_Catalog_Model_Product $product)
  14. আপনি যদি ক্লাসগুলি ওভাররাইড করে থাকেন তবে তাদের একটি তালিকা একটি readme.txtফাইলে রাখবেন
  15. আপনার মডিউলের প্রশাসক বিভাগের জন্য ডিফল্ট অ্যাডমিন পাথটি ব্যবহার করুন। ভুল প্রশাসক ইউআরএল articles/adminhtml_articles/indexডান অ্যাডমিন URL admin/articles/index
  16. আপনার প্রশাসক বিভাগগুলির জন্য এসিএল যুক্ত করুন। আমি প্রশাসকের কিছু অ্যাক্সেস সীমাবদ্ধ করতে চাইতে পারি।
  17. এটির প্রয়োজন না হলে অন্য জাভাস্ক্রিপ্ট ফ্রেমওয়ার্ক (jQuery, MooTools, ইত্যাদি) যুক্ত করবেন না। প্রোটোটাইপে আপনার কোড লিখুন।
  18. আপনাকে এইচটিএমএল ডাব্লু 3 সি বৈধ করুন (এটি আমার মতো ওসিডি বিকাশকারীদের জন্য)।
  19. mediaফোল্ডারে চিত্রগুলি রাখবেন না । ব্যবহার skinmedia ফোল্ডারের সাধারণত versioned করা হয় না এবং এই কঠিন বিভিন্ন পরিবেশের সাথে ওয়েবসাইট সরাতে পারেন।
  20. ফ্ল্যাট ক্যাটালগ চালু এবং বন্ধ দিয়ে আপনার এক্সটেনশনটি পরীক্ষা করুন। উন্নয়নের সময় দ্বিগুণ না হওয়ার জন্য, কায়স বানরটি ব্যবহার করুন ।
  21. ক্যাশে onএবং ক্যাশে দিয়ে আপনার এক্সটেনশনটি পরীক্ষা করুন off
  22. মডিউল এবং শ্রেণীর নামগুলিতে বড় হাতের অক্ষর ব্যবহার করা এড়িয়ে চলুন। সঠিকভাবে পরীক্ষা না করা হলে এটি বিভিন্ন ওএসে সমস্যা সৃষ্টি করতে পারে। এটি আরও একটি সুপারিশ, 'আবশ্যক' নয়।
  23. বিকাশকারীদের কার্যকারিতা পরিবর্তন করা সহজ করার জন্য আপনার কোডে ইভেন্টগুলি প্রেরণ করুন।
  24. Magento আপনার কোড ব্যবহার করে এবং একই কোডিং মান হিসাবে অনুসরণ করুন।
  25. পিএইচপি সংক্ষিপ্ত ট্যাগ ব্যবহার করবেন না ( <? $this->doSomething() ?>)। সম্পূর্ণ ট্যাগ ব্যবহার করুন ( <?php $this->doSomething()?>)। এছাড়াও, ছোট ইকো ট্যাগগুলি ব্যবহার করবেন না। ( <?="D'oh";?>)। ব্যবহার ( <?php echo "D'oh";?>)
  26. আপনার পাঠ্যগুলি ব্যবহার করে $this->__অনুবাদ করুন app/local/en_US/Easylife_Articles.csvএবং কমপক্ষে en_USভাষার জন্য আপনার পাঠ্যগুলির সাথে স্থানীয় অনুবাদ ফাইল যুক্ত করুন । সমস্ত ওয়েবসাইটই ইংরেজিতে অন্তর্নির্মিত নয় এবং অনুবাদ করার জন্য পাঠগুলির শনাক্তকরণ সময় সাপেক্ষ নয়।
  27. আপনি যদি কোনও এক্সটেনশান অফার বিক্রি করেন তবে কমপক্ষে প্রাথমিক সমর্থন। অথবা কমপক্ষে আপনার প্রাপ্ত সমর্থন ই-মেইলের উত্তর দিন।
  28. লাইসেন্স বৈধতার জন্য আপনার এক্সটেনশনের মাধ্যমে আপনার সার্ভারগুলিতে অবিরাম কল করবেন না। একবার, ইনস্টলেশন এ পর্যাপ্ত পরিমাণের চেয়ে বেশি (আমি এই পদ্ধতিকেও পছন্দ করি না, তবে সারাক্ষণ কল করা ভাল)। ( এই প্রশ্নে অনুপ্রাণিত )
  29. অ্যাক্টিভেট হওয়া লগের সাথে বিকাশ করুন এবং সময়ে সময়ে var/log/system.logফাইলটি একবার দেখুন । এখানে তালিকাভুক্ত ত্রুটিগুলি বিকাশকারী মোড চালু থাকলেও প্রদর্শিত হয় না। কমপক্ষে একটি ত্রুটি থাকলে আপনি এক্সটেনশন চালানোর কয়েক মাস পরে একটি বড় লগ ফাইল দিয়ে শেষ করেন।
  30. যদি আপনার এক্সটেনশন চেকআউট প্রক্রিয়া বা অর্ডারগুলিকে কোনওভাবে প্রভাবিত করে, তা নিশ্চিত করুন যে এটি মাল্টি-শিপিংয়ের সাথে কাজ করে, বা যদি এটি মাল্টি-শিপিংয়ের সাথে কাজ না করে তবে নিশ্চিত হয়ে নিন যে এটি এতে প্রভাব ফেলে না।
  31. ডিফল্ট অ্যাডমিন নোটিফিকেশন বার (বা ফিড URL) প্রতিস্থাপন করবেন না। আমি আপনাকে যা দিতে চাই তাতে আগ্রহী হলে আমি আপনার নিউজলেটারে সাবস্ক্রাইব করব। আমাকে দেখা যাক ম্যাজেন্টো কী বলবে। এটি আমার কাছে আরও গুরুত্বপূর্ণ।
  32. আপনি যদি নিজের কোড ফাইলগুলি আয়নক्यूब (বা অন্য কিছু) দিয়ে এনক্রিপ্ট করেন ... ভাল ... আমি আপনাকে কেবল ঘৃণা করি এবং আমি আশা করি আপনার ব্যবসা দেউলিয়া হয়ে যায়

এটাই এখন পর্যন্ত আছে আমি অন্য কিছুর কথা চিন্তা করার সাথে সাথে আরও যুক্ত করব।


আমি আপনার সাথে একমত, এটি অবশ্যই একটি ভাল শুরু। নিশ্চিতভাবেই, আপনি এটিও বুঝতে পারবেন যে সমস্ত ধরণের কনফিগারেশন এবং সমস্যাগুলি আচ্ছাদন করা সর্বদা সম্ভব নয়, কমপক্ষে এটি সম্ভাব্যটি হ্রাস করবে। আমি অন্যান্য এক্সটেনশনের সাথে আমার দেখা বা লোকেদের সাথে আমার দেখা বেশিরভাগ সমস্যা ওভাররাইটিংয়ের সাথে দ্বন্দ্বের কারণে।
সিলভাইন রায়é

2
@ মারিয়াস, আমার কাছ থেকে নিশ্চিত 1+. বেশিরভাগ ক্ষেত্রেই আমরা উন্নয়নের মুখোমুখি হতে পারি scenario
লিয়াকত

4
@ColinM। সবার আগে এখানে আপনার মন্তব্য করা সম্মানের। :)। আমি একমত হচ্ছি যে পার্থক্য রয়েছে, আমি উত্তরটি সংশোধন করব, তবে আমি এখনও মনে করি যে পিএইচপি 5.3 "নতুন পিএইচপি 4" না হওয়া পর্যন্ত তাদের উভয়ই এড়ানো উচিত। মানে এটি এখনও বড় আকারে ব্যবহৃত হয়।
মারিয়াস

4
@ মারিয়াস, আপনার পয়েন্টগুলি খুব সহায়ক। # 31 অবধি আমি প্রতিটি বিষয়টিতে গুরুত্ব সহকারে মনোনিবেশ করছিলাম, তবে # 32-এ আমি কেবল উচ্চস্বরে হাসি ফেটেছিলাম। +1 পয়েন্ট # 32 এর জন্য বিশেষত
এমটিএম

1
If you encrypt your code files with Ioncube (or something else)...well...I just hate you and I hope your business goes bankruptআমিও একই অনুভব করছি. কিছু সংস্থা রয়েছে যা আপডেট সংস্করণ দেয় না, তাদের জন্য আপনাকে অর্থ প্রদান করতে হবে, এটি আমার জন্য সত্যই হতাশাব্য এবং তারা কেন একই পণ্য পুনরাবৃত্তি করতে চান তা বুঝতে পারছেন না (অর্থোপার্জন করতে? স্পষ্টতই)) আমি কেবল তাদের পণ্য আর কিনতে না। আমি কার কথা বলছি তুমি জানো।
আদর্শ খত্রি

31

আমি মোডম্যান ব্যবহারের একটি বড় অনুরাগী যাতে আমি কেবলমাত্র আমার এক্সটেনশানটি বিকাশ করতে পারি এবং উত্স নিয়ন্ত্রণ করতে পারি এবং মূল ফাইল এবং ফোল্ডার কাঠামোটি অপরিবর্তিত রাখতে পারি। এটি বিভিন্ন ইনস্টলেশন জুড়ে পরীক্ষাকে মসৃণ করে তোলে।

ওহ এবং একটি বৃহত্তর টিপ সর্বদা আপনার প্যাকেজড এক্সটেনশনটি স্থানীয়ভাবে ম্যাজেন্টো সংযোগে আপলোড করার আগে ম্যাজেন্টোকে একটি পরিষ্কার ইনস্টল করে ইনস্টল করার চেষ্টা করুন, আমি প্যাকেজ ম্যানেজারে এতবার ফাইলগুলি মিস করেছি।


3
'স্থানীয়ভাবে আপনার প্যাকেজড এক্সটেনশন ইনস্টল করুন' সম্পর্কে ভাল কল আমি মনে করি এটি বিভাগে আসে: 'আপনার godশ্বর অভিশাপকে উপরে থেকে নীচে পরীক্ষা করুন'।
মারিয়াস

আমি এর আগেও ধরা পড়েছি। নিশ্চিত করুন যে আপনি একটি পরিষ্কার উপর প্যাকেজ পরীক্ষা ইনস্টল করে তা নিশ্চিত করুন না একই আপনি এটি প্যাকেজ!
জোসেফ লেডি

22

অ্যান্ড্রেস ফন স্টুডনটিজ এবং ডাঃ নিকোলাই ক্রামব্রোক মিট ম্যাজেন্টো ডিই 2014 তে কোড মানের সম্পর্কে একটি ভাল উপস্থাপনা দিয়েছিলেন They তারা সাধারণ কোডের মান এবং ম্যাজেন্টো-নির্দিষ্ট কোড মানের মধ্যে পার্থক্য করে। সংক্ষেপে, নিম্নলিখিত সাধারণ নিয়ম রয়েছে:

  • কাঠামোগত উপাদানগুলির ব্যবহার - যেমন ক্লাস এবং পদ্ধতির মতো - মধ্যম শ্রেণীর শ্রেণিতে সাজানো উচিত। কাঠামোর এই উপাদানগুলি তখনই বোধগম্য হয় যখন সেগুলি কাঠামোর জন্য ব্যবহার করা হয়। সুতরাং এগুলি মাঝারি আকারের হতে হবে। এটি ক্লাসের জন্য কোডের 100-200 লাইন এবং পদ্ধতির জন্য 3-2 টি কোডের লাইন ব্যবহার করে বলে মনে করা হয়।
  • কোডটি ইন্টেন্ট করা থাকলে "যদি" বা "যখন" ব্যবহার হয়। যদি 3 টিরও বেশি ইন্ডেন্টেশন থাকে তবে সেগুলি সংশোধন করা ভাল। অনেকগুলি ইনডেন্টেশন কোডের জটিলতার প্রমাণ এবং তাই এড়ানো উচিত।
  • ডেড কোড এড়ানো এবং মুছে ফেলা উচিত। স্থিতিশীল বিশ্লেষণগুলির উপস্থিতি খুঁজে পেতে এটি সহায়তা করে।

এর চেয়ে আরও গুরুত্বপূর্ণ হ'ল ম্যাজেন্টো-নির্দিষ্ট বিধিগুলি:

  • মডিউলগুলি স্বাধীনভাবে কাজ করা উচিত। তাদের কেবলমাত্র অন্যান্য মডিউলগুলির উপর সামান্য নির্ভরতা থাকতে হবে এবং টেম্পলেটগুলির উপর নির্ভরতা নেই। একটি সমাধান হ'ল টেমপ্লেট ফাইলগুলিতে অভিযোজনের পরিবর্তে লেআউট-আপডেটগুলি (বেস / ডিফল্ট) এবং টেমপ্লেটের অতিরিক্ত ফাংশনগুলি জুড়ে এমন একটি মডিউল ব্যবহার করা।
  • বাহ্যিক মডিউলগুলির ম্যাজেন্টো কোর-হ্যাক এবং হ্যাকগুলিতে আপডেটের সক্ষমতা বজায় রাখা উচিত। এর পরিবর্তে পুনরায় লেখক বা পর্যবেক্ষকের ব্যবহার আরও ভাল উপায়।
  • পরিবর্তনের জন্য, ডাটাবেস বা প্রশাসকের সরাসরি পরিবর্তনের পরিবর্তে সেটআপ স্ক্রিপ্টগুলি ব্যবহার করা ভাল। তাদের ধন্যবাদ শুধুমাত্র এক সময় পরিবর্তন করতে হবে।

এখানে আরও কিছু বিবরণ এবং উপস্থাপনাটির একটি ভিডিও রয়েছে: http://www.code4business.de/code-quality-magento/


1
তবে আপনার পোস্ট করা লিঙ্কটির যদি ইংরেজী সংস্করণ থাকে তবে এটি আরও ভাল।
মারিয়াস

এই উপস্থাপনাটির একটি ইংরেজি সংস্করণ শিগগিরই লেখা হচ্ছে। আমি আপনাকে বর্তমান রাখব এবং ইংরেজি সংস্করণ প্রকাশের সাথে সাথেই আমি নতুন লিঙ্কটি ভাগ করব।
ব্যবহারকারী3743859

উপস্থাপনাটির একটি ইংরেজি সংস্করণ এখন অনলাইনে। এখানে এটির লিঙ্কটি রয়েছে: কোড4 business.de/code-quality-magento
user3743859

তাই না? এটি এখনও জার্মান ভাষায়। তবে আমি প্রায় 2 সপ্তাহ আগে মিটমেজেন্টরোতে ইংরেজিতে এই উপস্থাপনায় অংশ নিতে এসেছি। দুর্দান্ত জিনিস।
মারিয়াস

18

আপনি যদি নিজের এক্সটেনশন বিক্রি করেন বা অন্যের সাথে ভাগ করে নেন তবে মানব পাঠযোগ্য এমন কোডটি লেখার বিষয়ে ভাবুন।

  1. পদ্ধতি খুব জটিল না
  2. আপনার পদ্ধতিতে DOC ব্লক যুক্ত করুন *
  3. $productIdsপরিবর্তে যথাযথ চলক নাম ব্যবহার করুন$ids
  4. পদ্ধতিগুলির জন্য একই, public function myOnProductSaveMethod() {...}বলেছেন ... কিছুই নয়, তবে tryDisableInternetOnProductSave()পরিকল্পনার ইঙ্গিত দিতে হবে
  5. প্রকারের ইঙ্গিতগুলি ব্যবহার করুন যেখানে এটি উপলব্ধি করে someMethod(Varien_Data_Db_Collection $collection)
  6. এড়াতে যাদু সংখ্যা এবং স্ট্রিং **
  7. যদি আপনি মডেলগুলিকে পর্যবেক্ষকদের আরও ভাল অ্যাক্সেসযোগ্য করে তুলতে $_eventPrefixসম্পত্তি সেট (এবং $_eventObject) ব্যবহার করেন
  8. যদি আপনি সিস্টেম কনফিগারেশন ক্ষেত্রগুলি যোগ করেন
    • ডিফল্ট মান সেট করুন config.xml
    • <validate>ক্ষেত্রগুলিতে নোড যুক্ত করুনsystem.xml
    • এসিএল সংস্থানগুলিতে যুক্ত করুন adminhtml.xml
  9. অ্যাডমিন ব্যাকএন্ডে অকেজো / বিজ্ঞাপনের প্রথম-স্তরের মেনু এন্ট্রি যুক্ত করবেন না - টপবারে বা কনফিগার বিভাগেও নয়
  10. সমস্ত নিয়ামক ক্রিয়াকলাপের জন্য এসিএল সংস্থান যুক্ত করুন (ম্যাসেজও খুব!)
  11. আপনার প্রশ্নগুলি ডিবি সারণির উপসর্গের সাথে কাজ করে তা নিশ্চিত করুন
  12. (না) পশ্চাদপদ সামঞ্জস্যতা সম্পর্কে চিন্তা করুন ( এটি সত্যই মতামত ভিত্তিক)
    • Mysql4ক্লাস সমর্থন করবেন না
    • অবহেলা পদ্ধতি ব্যবহার করবেন না
  13. আপনার উচ্ছেদ প্রতিটি ক্ষেত্রে প্রত্যাশার মতো কাজ করে তা নিশ্চিত করুন - ইউনিট টেস্ট যুক্ত করুন (পিএইচপিউনাইট উদাহরণস্বরূপ)
  14. ডেভিড শিষ্টাচার ছাড়াও ... composer.jsonস্থাপনা আরও সহজ করতে আরও একটি যুক্ত করুন
  15. যেহেতু PHP5.6 EOL, তাই আপনার কোডটি PHP7- এর জন্য লিখুন। declare(strict_types=1);আপনার ইন- এবং আউটপুট প্রকারগুলি ব্যবহার এবং সংজ্ঞা দিন
  16. 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)

8

কোডিং স্ট্যান্ডার্ড সম্পর্কিত @ এমরিয়াস (আপনার তালিকার 24 পয়েন্ট)।

আমি ব্যবহার করতে চান PHP_CodeSniffer সহ EQP এবং ইসিজি সি এস স্বয়ংক্রিয়ভাবে এই মান জোরদার করা।

ব্যবহার PHP_CodeSniffer আপনি প্রতিস্থাপন ভালো জিনিস বিস্মরণ সম্পর্কে চিন্তা করতে হবে না array()সঙ্গে []ব্যবহার এড়াতে is_null, অব্যবহৃত স্থানীয় ভেরিয়েবল বা PHPDoc ব্লক ছাড়া এমনকি একটি পদ্ধতি ছেড়ে।

PHP_CodeSniffer সর্বদা আপনাকে এটি সম্পর্কে বলবে।


একমত! সম্ভাব্য হাওটো
sv3n

আমি মনে করি পিএইচপিএসটারমে উভয় সিএস কনফিগার করার কোনও উপায় নেই (যারা পিএইচপিএসটর্ম ব্যবহার করেন তাদের জন্য) তবে আপনি আপনার কোডের সিএস চেক করতে সর্বদা টার্মিনালটি ব্যবহার করতে পারেন। এছাড়াও গ্রাম্প্প github.com/phpro/grumphp এর মতো সরঞ্জাম রয়েছে যা কিছুটা সহায়তা করে।
ডায়াজওয়াটসন

এটি আপনাকে সহায়তা করতে পারে magento.stackexchange.com/questions/200022/…
প্রমোদ খারাড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.