যেভাবে সাহায্যকারীদের তাত্ক্ষণিকভাবে চালিত করা হয় (কমপক্ষে নতুন ব্যাকএন্ড (~ dev50) মডিউলটির জন্য) হেল্পার ফ্যাক্টরির মাধ্যমে:
/**
* Return helper object
*
* @param string $name
* @return \Magento\Core\Helper\AbstractHelper
*/
public function helper($name)
{
return $this->_helperFactory->get($name);
}
যা মূলত কেবলমাত্র একটি বিশেষ ধরণের মডেল কারখানা। উদাহরণস্বরূপ: নির্মাণের অংশ হিসাবে ম্যাজেন্টো \ কোর \ ব্লক \ প্রসঙ্গ লাইন 143 (dev50):
\Magento\Core\Model\Factory\Helper $helperFactory
সহায়ক কারখানাটি শ্রেণীর নামের উপর ভিত্তি করে অনুরোধ করা মডেলটি ফিরিয়ে দেবে এবং নিশ্চিত করবে যে এটি কোনও instanceof
সহায়ক বিমূর্ত শ্রেণি:
/**
* Get helper singleton
*
* @param string $className
* @param array $arguments
* @return \Magento\Core\Helper\AbstractHelper
* @throws \LogicException
*/
public function get($className, array $arguments = array())
{
$className = str_replace('_', '\\', $className);
/* Default helper class for a module */
if (strpos($className, '\Helper\\') === false) {
$className .= '\Helper\Data';
}
$helper = $this->_objectManager->get($className, $arguments);
if (false === ($helper instanceof \Magento\Core\Helper\AbstractHelper)) {
throw new \LogicException(
$className . ' doesn\'t extends Magento\App\Helper'
);
}
return $helper;
}
আপনি যদি নিজেরাই এটি বাস্তবায়ন করতে থাকেন তবে মনে হয় ম্যাগেন্টো কোর এটি দুটি উপায়ে একটিতে লোড করছে:
আপনার নিজস্ব কারখানা রোল:
$objectManager = \Magento\Core\Model\ObjectManager::getInstance();
$helperFactory = $objectManager->get('\Magento\Core\Model\Factory\Helper');
$helper = $helperFactory->get('\PulseStorm\Commercebug\Helper\Data');
বা কেবল এটি সরাসরি ধরুন:
$helper = \Magento\Core\Model\ObjectManager::getInstance()->get('Magento\Core\Helper\Data');