Być może brakuje mi punktu, ale po prostu zastanawiam się, dlaczego czasami istnieje instrukcja „use” dla określonej klasy, a czasem nie.
Przykład: app\code\Magento\Email\Model\Template.php
mamy na górze pliku:
namespace Magento\Email\Model;
use Magento\Store\Model\ScopeInterface;
use Magento\Store\Model\StoreManagerInterface;
Następnie w __construct
metodzie mamy następujące parametry:
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 = []
)
Widzimy więc wyraźnie, że jak nazywamy use Magento\Store\Model\StoreManagerInterface;
na szczycie klasy, jesteśmy w stanie wykonać StoreManagerInterface $storeManager
parametry konstruktora.
Moje pytania to:
- Dlaczego robimy to tylko dla jednej klasy?
- Dlaczego nie możemy dodać
use
instrukcji dla każdej klasy konstruktora, abyśmy nie musieli wpisywać pełnej ścieżki klasy? - Lub na odwrót, dlaczego nie pozbędziemy się
use
instrukcji i nie podamy pełnej ścieżki doStoreManagerInterface
klasy?
use
do konkretnej klasy, którą wskazałem, prawda?