ম্যাজেন্টো 2-তে কোন ধরনের (শ্রেণির) শ্রেণি তৈরি করা হয়?


9

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

স্বয়ংক্রিয়ভাবে উত্পন্ন উত্পন্ন ক্লাস বা শ্রেণীর ধরণের একটি সম্পূর্ণ তালিকা রয়েছে?
এবং পার্শ্ব প্রশ্ন হিসাবে ... এগুলি কখন / কোথায় উত্পন্ন হয়?

উত্তর:


9

বিভিন্ন সত্তা উত্পন্ন করার বিভিন্ন কারণ রয়েছে:

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

কারখানা - এমন একটি শ্রেণী যা ইনজেকশনযোগ্য (সত্তা) তৈরি করতে ব্যবহৃত হয়। প্রক্সি হিসাবে একই। পিএইচপি-তে এখনও জেনেরিকস নেই, তাই আমরা বিকাশকারীকে বয়লারপ্লেট কোড তৈরি না করার জন্য কারখানাগুলি স্বয়ংক্রিয়ভাবে উত্পাদন করি। আপনি Magento কোড জুড়ে কারখানার সাথে কথাবার্তা হবে। সম্ভবত আপনার সত্তার জন্য আপনার নিজস্ব কারখানার প্রয়োজন হবে। কেবল কনস্ট্রাক্টরে সম্পর্কিত কারখানাটি জিজ্ঞাসা করুন এবং এটি পরবর্তী রান বা সংকলক চলাকালীন তৈরি হবে।

ইন্টারসেপ্টর - একটি অবকাঠামোগত ক্লাস, যা ইন্টারসেপশন উপাদান ব্যবহার করে। ফ্লাইংম্যানা এবং ফিল উইঙ্কল লক্ষ্য করেছেন যে কোনওভাবেই তাদের সাথে আপনার যোগাযোগ করা উচিত নয়।

অন্যান্য সংস্থাগুলির একটি গুচ্ছ তৈরি হয়েছে (যেমন অবজেক্ট গ্রাফ প্রোফাইলিং মোডের জন্য লগার) তবে এই 3 টি সবচেয়ে গুরুত্বপূর্ণ।

ম্যাজেন্টো 2 সংকলন করা যায়। সংকলন ডিআই এবং ইন্টারসেপশনকে দ্রুত করে তোলে। সমস্ত কোড জেনারেশন এবং সংকলন ডিভ / টুলস / ম্যাজেন্টো / সরঞ্জাম / ডিআই / কম্পাইলারপিএফপি দিয়ে করা যেতে পারে


2

ধারণা থেকে:

কোন ধরণের ক্লাস স্বয়ংক্রিয়ভাবে উত্পন্ন হয় তা আপনার জানা দরকার না, কারণ আপনার কখনই তাদের স্পর্শ বা ব্যবহার করতে হবে না, এমনকি আপনার উচিত নয়।

এগুলি (এখনও?) উড়তে উত্পন্ন হয় তবে পরে ক্লাইম কমান্ড বা অনুরূপ মাধ্যমে উত্পন্ন করা উচিত।

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


1
আমি "বা সেগুলি ব্যবহার" সম্পর্কে নিশ্চিত নই। এখানে একটি উদাহরণ: Magento\Cms\Block\Blockকন্সট্রাক্টরে একটি উদাহরণ \Magento\Cms\Model\BlockFactoryব্যবহার করা হয়। কোডটি কোথাও নেই class এটি শুধুমাত্র পাওয়া যায় var/generation। সুতরাং আমি যদি একটি অনুরূপ মডিউল করছি আমি একটি অনুরূপ বর্গ ব্যবহার করতে পারে।
মারিয়াস

2

নতুন প্ল্যাটফর্মের দিকটি-ভিত্তিক দৃষ্টিভঙ্গিটি ম্যাজেন্টো এইভাবে উত্পন্ন করে; প্রকৃতপক্ষে পূর্বে, চারপাশে এবং পরে "ইভেন্ট" তৈরি করার পরিবর্তে এগুলি গতিশীলভাবে প্রেরণের পরিবর্তে। এটি প্রোগ্রামার এবং প্ল্যাটফর্মের জন্য পারফরম্যান্সের সুবিধার ভারসাম্য রোধ করে।

কিছু কৌশল যেমন অটো নির্ভরতা ইনজেকশনটি প্রতিবিম্বের মাধ্যমে মৃত্যুদন্ড কার্যকর করার পরিবর্তে উত্পন্ন শ্রেণিতে সমতল হয় - আবার - এটি কার্যকারিতা উন্নত করার কৌশল improve


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