ম্যাজেন্টো 2-এ, যখন আপনি একটি "চারপাশে" প্লাগইন তৈরি করেন
public function aroundRenderResult(
\Magento\Framework\Controller\ResultInterface $subject,
\Closure $proceed,
ResponseHttp $response
) {
//...
$proceed($response);
//...
}
আপনি পরবর্তী প্লাগিনে এগিয়ে যেতে পারেন , কলটি দিয়ে আসল আসল মূল পদ্ধতিটি কল করে / $proceed
পদ্ধতিতে উত্তীর্ণকে অনুরোধ করে । এটি একটি সাধারণ নকশার ধরণ যা প্রায়শই পিএইচপি ফ্রেমওয়ার্ক মিডলওয়্যার বাস্তবায়নগুলিতে দেখা যায়।
তবে - এটি বাস্তবায়নের বিশদে কিছু বিভ্রান্তি ডাব্লু / আর / টি উপস্থাপন করে। বিশেষভাবে
যদি, কোনটি ছাড়াও
aroundPlugin
, কোনও অবজেক্ট / বর্গের একটিbefore
বাafter
প্লাগইন সংজ্ঞায়িত করা হয়, তখন তারা প্লাগইনগুলির আশেপাশের শৃঙ্খলা সম্পর্কিত কখন গুলি চালায়?
অর্থাত্ কোনও পূর্ববর্তী পদ্ধতিগুলি কোনও প্লাগইন পদ্ধতিতে আগুন লাগার আগে আগুন নেবে? বা চূড়ান্ত, বাস্তব প্রকৃত পদ্ধতির আগুনের আগে প্লাগইনগুলি কেবল আগুন নেবে ?
যে নির্দিষ্ট সমস্যাটি আমি সন্ধান করার চেষ্টা করছি তা হ'ল, ম্যাজেন্টো যখন পুরো পৃষ্ঠা ক্যাশিং মোডে থাকবে তখন আমি কোনও ম্যাগেন্টো 2 সামনের নিয়ামক প্রেরণের পদ্ধতির সাথে সংযুক্ত একটি প্লাগইন পেতে পারি না । পূর্ণ পৃষ্ঠার ক্যাশে একটি চারপাশের প্লাগইন দ্বারা পরিচালিত হয় যা কল দেয় না$proceed($response)
। আমি এই প্লাগইনগুলির আশেপাশে কয়েকটি কোডের খনন করার চেষ্টা করেছি এবং প্লাগইনগুলি কীভাবে কাজ করে তার উদ্দেশ্য কীভাবে না জেনে সিস্টেমকে তার পক্ষে যুক্তি করতে অসুবিধা পেয়েছি।
যেমন - ডেভ ডক্স পৃষ্ঠায় বর্ণিত বিবরণটি প্রদর্শিত হবে, এই একটি নির্দিষ্ট উদাহরণে, ভুল হতে হবে। ডকুমেন্টেশনটি ভুল হলে এটি স্পষ্ট নয়, বা এটি যদি সম্প্রতি প্রবর্তিত বাগ হয় তবে এটি কোনও প্রান্তের কেস বা যদি আমার প্লাগইন কনফিগারেশনটি ভুল হয়।
প্রত্যক্ষ পর্যবেক্ষণ দ্বারা বা সাংস্কৃতিক জ্ঞানের দ্বারা কেউ কি জানেন যে এই অগ্রাধিকারটি কীভাবে কাজ করবে?
\closure $proceed
বনাম বনাম ব্যবহার করবেন তখন আপনার কি থাম্বের নিয়ম রয়েছে\callable $proceed
? সরকারী ডক শুধুমাত্র উল্লেখ\callable
এবং এর কখনই স্পর্শ\closure
।