Vielleicht fehlt mir ein Punkt, aber ich frage mich nur, warum es manchmal eine "use" -Anweisung für eine bestimmte Klasse gibt und manchmal nicht.
Beispiel: app\code\Magento\Email\Model\Template.php
Wir haben am Anfang der Datei:
namespace Magento\Email\Model;
use Magento\Store\Model\ScopeInterface;
use Magento\Store\Model\StoreManagerInterface;
Dann __construct
haben wir in der Methode die folgenden Parameter:
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 = []
)
Wir können also klar erkennen, dass wir use Magento\Store\Model\StoreManagerInterface;
dies StoreManagerInterface $storeManager
in den Konstruktorparametern tun können, als wir oben in der Klasse aufgerufen haben .
Meine Fragen sind:
- Warum machen wir das nur für eine Klasse?
- Warum können wir nicht
use
für jede Klasse des Konstruktors eine Anweisung hinzufügen, sodass wir nicht den vollständigen Klassenpfad eingeben müssen? - Oder umgekehrt, warum werden wir die
use
Anweisung nicht los und geben den vollständigen Pfad zurStoreManagerInterface
Klasse ein?
use
für die bestimmte Klasse, auf die ich hingewiesen habe, hinzugefügt wurde, oder?