मुझे एक बिंदु याद आ रहा है लेकिन मैं सोच रहा हूं कि कभी-कभी एक विशिष्ट वर्ग के लिए "उपयोग" बयान क्यों होता है और कभी-कभी हम नहीं करते हैं।
उदाहरण: app\code\Magento\Email\Model\Template.php
हमारे पास फ़ाइल के शीर्ष पर है:
namespace Magento\Email\Model;
use Magento\Store\Model\ScopeInterface;
use Magento\Store\Model\StoreManagerInterface;
फिर __construct
विधि में हमारे पास निम्नलिखित पैरामीटर हैं:
public function __construct(
\Magento\Framework\Model\Context $context,
\Magento\Framework\View\DesignInterface $design,
\Magento\Framework\Registry $registry,
\Magento\Store\Model\App\Emulation $appEmulation,
StoreManagerInterface $storeManager,
\Magento\Framework\View\Asset\Repository $assetRepo,
\Magento\Framework\Filesystem $filesystem,
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
\Magento\Email\Model\Template\Config $emailConfig,
\Magento\Email\Model\TemplateFactory $templateFactory,
\Magento\Framework\Filter\FilterManager $filterManager,
\Magento\Framework\UrlInterface $urlModel,
\Magento\Email\Model\Template\FilterFactory $filterFactory,
array $data = []
)
इसलिए हम स्पष्ट रूप से देख सकते हैं कि जैसा कि हमने use Magento\Store\Model\StoreManagerInterface;
कक्षा के शीर्ष पर बुलाया था, हम StoreManagerInterface $storeManager
निर्माण मापदंडों में करने में सक्षम हैं ।
मेरे प्रश्न हैं:
- हम केवल एक वर्ग के लिए ऐसा क्यों करते हैं?
- हम
use
कंस्ट्रक्टर के हर वर्ग के लिए एक बयान क्यों नहीं जोड़ सकते हैं ताकि हमें पूरी क्लास का रास्ता न लिखना पड़े? - या दूसरे तरीके से, क्यों हम
use
बयान से छुटकारा नहीं पाते हैं औरStoreManagerInterface
क्लास का पूरा रास्ता टाइप करते हैं ?
use
विशिष्ट वर्ग के लिए जोड़ा है जो मैंने सही बताया है?