Bir noktayı kaçırıyor olabilirim ama neden bazen belirli bir sınıf için "kullan" ifadesi olduğunu merak ediyorum, bazen de bilmiyoruz.
Örnek: app\code\Magento\Email\Model\Template.php
Dosyanın en üstünde:
namespace Magento\Email\Model;
use Magento\Store\Model\ScopeInterface;
use Magento\Store\Model\StoreManagerInterface;
Sonra __construct
yöntemde aşağıdaki parametreler var:
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;
Sınıfın en üstünde dediğimiz gibi StoreManagerInterface $storeManager
yapıcı parametrelerinde yapabildiğimizi açıkça görebiliyoruz .
Sorularım:
- Bunu neden sadece bir sınıf için yapıyoruz?
- Neden
use
tüm sınıf sınıfı için bir ifade ekleyemiyoruz , bu yüzden tam sınıf yolunu yazmak zorunda kalmıyoruz? - Ya da tam tersine, neden
use
ifadeden kurtulupStoreManagerInterface
sınıfın tam yolunu yazmıyoruz?
use
işaret ettiğim sınıfa kattığı hiçbir anlamı yok.