প্লাগইন বনাম ম্যাজেন্টো 2 ক্লাস পুনর্লিখন


17

ম্যাজেন্টো 2- তে ম্যাগেন্টো 1 এর বিপরীতে প্লাগইন / ইন্টারসেপশন / ইন্টারসেপ্টারগুলির ধারণা রয়েছে
These এগুলি প্রতিটি পাবলিক পদ্ধতির ইভেন্টের পরে | আগের মতো কাজ করে। যা সুন্দর. কোনও পদ্ধতির কার্যকারিতা প্রতিস্থাপন
করতে আপনি aroundপ্লাগইন ব্যবহার করতে পারেন ।
তবে ম্যাজেন্টো 2 এখনও এম 1 উপায়ে কম-বেশি ক্লাস পুনর্লিখনের সম্ভাবনা দেয়।
আমি কয়েকটি উদাহরণ দেখতে চাই যেখানে পুনরায় লেখার ক্লাসগুলি প্লাগইনগুলি ব্যবহার না করে যাওয়ার উপায়।
আমি জানি আপনি যখন কোনও মূল সুরক্ষিত পদ্ধতির আচরণ পরিবর্তন করতে চান তবে এটি আবার কার্যকর হয় তবে অন্য ক্ষেত্রে কী আবার পুনর্লিখনের প্রস্তাব দেওয়া হয় বা প্রয়োজন হয়?


উত্তর:


19

প্লাগিনের পরিবর্তে পুনর্লিখন ব্যবহারের স্পষ্ট কারণ হ'ল যখন আপনাকে কোনও ব্যক্তিগত, সুরক্ষিত বা চূড়ান্ত পদ্ধতিগুলি ওভাররাইড করতে হয় ।

তবে নিম্নলিখিত পরিস্থিতিগুলিও বিবেচনা করুন।

1 ম দৃশ্য (পরম সাজানোর ক্রম):

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

২ য় দর্শন (কোড বাদ)

আপনার যদি কোনও পদ্ধতিতে কোডের কিছু অংশ বাদ দিতে বা পুনরায় লেখার প্রয়োজন হয় তবে একটি প্লাগইন একটি উপ-অনুকূল উপায় হতে পারে। আমি জানি আপনি একটি aroundপ্লাগইন ব্যবহার করতে পারেন এবং কলটি এড়াতে পারবেন proceed, তবে এটি স্ট্যাকের মধ্যে অন্যান্য প্লাগইনগুলি ভেঙে দিতে পারে।

তৃতীয় দৃশ্য (কোড শৈলী):

আপনার যখন কোনও আচরণ পুনর্লিখনের দরকার হয় তখন আপনার পুনর্লিখনগুলি ব্যবহার করা উচিত, প্লাগইনগুলি আউটপুট পরিবর্তন করতে বা কোড চালানোর আগে / পরে ব্যবহার করা উচিত ।

একটি প্লাগইন, অন্যান্য মডিউলগুলি না ভাঙতে সর্বদা আসল কোডটি চালানো উচিত

আমার উপসংহার:

যদি আপনি কোনও মূল পদ্ধতিটিকে একটি ইনপুট এবং একটি আউটপুট সহ একটি কালো বাক্স হিসাবে বিবেচনা করতে পারেন এবং আপনি এর অভ্যন্তরীণ প্রক্রিয়া সম্পর্কে অজ্ঞেয়বাদী হন, তবে একটি প্লাগইন সেরা বিকল্প হতে পারে।

আপনার যদি অভ্যন্তরীণ আচরণ পরিবর্তন করতে হয় তবে একটি নতুন করে লেখা ভাল বিকল্প হতে পারে।


প্রকৃত পদ্ধতি কোডের আগে বা পূর্বদিকে প্লাগইন চালিত (বা চলতে পারে) যেহেতু 1 ম দৃশ্যটি কিছুটা ভুল (আমার মনে হয় এটি কেবলমাত্র শব্দযুক্ত) is
ডেভিড ভারহোলেন

হ্যাঁ, আমার কথাটি সঠিক ছিল না। আমার বক্তব্যটি আসল পদ্ধতির সাথে আপেক্ষিক সাজানোর ক্রম সম্পর্কে ছিল।
ফিনিক্স 128_ রিকার্ডোটি

7

দুর্দান্ত প্রশ্ন, আমি নিজেকে অন্য দিন একই জিনিস জিজ্ঞাসা করেছি এবং এখানে আমি কী নিয়ে এসেছি তা এখানে:

  • প্রথমত, প্লাগিনগুলি চূড়ান্ত পদ্ধতি, চূড়ান্ত ক্লাস এবং ক্লাসের জন্য নির্ভরতা ইনজেকশন ছাড়াই তৈরি করা যেতে পারে আমি মনে করি এটি একটি খুব নির্দিষ্ট কেস তবে এটি এমন একটি ক্ষেত্রে যেখানে আপনি প্লাগিন ব্যবহার করতে পারবেন না
  • দ্বিতীয়ত, আপনাকে একটি প্লাগইনের সংজ্ঞাটি মনে রাখা দরকার। এটি কোনও পদ্ধতি স্তরে কাজ করতে ব্যবহৃত হয় যখন পছন্দগুলি পুরো ক্লাস স্তরে কাজ করতে ব্যবহৃত হয়। এটি সবার জন্য সুস্পষ্ট নয় তাই এটিকে মনে রাখা ভাল good
  • পরিশেষে, এবং আমি মনে করি এটি সবচেয়ে গুরুত্বপূর্ণ, প্লাগিনগুলি কেবল একটি ম্যাজেন্টো শ্রেণীর মধ্যে যে কোনও পাবলিক পদ্ধতির আচরণ বাড়ানোর জন্য ব্যবহার করা যেতে পারে বলে মনে হয় । সুতরাং মনে হচ্ছে আপনি সুরক্ষিত / ব্যক্তিগত পদ্ধতিতে প্লাগইন ব্যবহার করতে পারবেন না

সূত্র: ম্যাজেন্টো ইউ ফান্ডামেন্টাল কোর্স


2
ঠিক আছে. ভাল কারণ। তবে দ্বিতীয় পয়েন্টটি সম্পর্কে কী বলব জানি না। আপনি যদি একই ক্লাস থেকে প্রচুর পাবলিক পদ্ধতি প্লাগিনাইজ করতে চান তবে আমি মনে করি নিরাপদতম উপায় হল একটি একক শ্রেণি তৈরি করা যা তাদের সকলের জন্য একটি প্লাগইন হিসাবে কাজ করে। (আমার মতামত). কেউ এই কারণে অন্য কারনে আসে কিনা তা দেখার জন্য আমি এই খোলাটি ২-৩ দিন রেখে দেব। যদি না হয় .... চেকমার্কটি আপনার।
Marius

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

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

@DavidVerholen। আমি সম্পূর্ণভাবে রাজী. তবে আমি প্লাগইনগুলির পরিবর্তে পুনর্লিখনগুলি ব্যবহার করার কারণ জিজ্ঞাসা করছি।
Marius

হ্যাঁ আমি মনে করি এটি প্লাগইনগুলি ব্যবহার করার কারণ হতে পারে কারণ আপনি নির্দিষ্ট প্লাগইন ক্লাস বৈশিষ্ট্যটি সংজ্ঞায়িত করতে পারেন, যখন একটি পুনর্লিখন কেবল একবার করা যেতে পারে
ডেভিড ভারহোলেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.