Je manque peut-être un point, mais je me demande simplement pourquoi il existe parfois une instruction "use" pour une classe spécifique et parfois nous ne le faisons pas.
Exemple:, app\code\Magento\Email\Model\Template.php
nous avons en haut du fichier:
namespace Magento\Email\Model;
use Magento\Store\Model\ScopeInterface;
use Magento\Store\Model\StoreManagerInterface;
Ensuite, dans la __construct
méthode, nous avons les paramètres suivants:
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 = []
)
Nous pouvons donc clairement voir que, comme nous l'avons appelé use Magento\Store\Model\StoreManagerInterface;
en haut de la classe, nous pouvons le faire StoreManagerInterface $storeManager
dans les paramètres du constructeur.
Mes questions sont:
- Pourquoi faisons-nous cela pour une seule classe?
- Pourquoi ne pouvons-nous pas ajouter une
use
instruction pour chaque classe du constructeur afin que nous n'ayons pas à taper le chemin complet de la classe? - Ou l'inverse, pourquoi ne pas nous débarrasser de l'
use
instruction et taper le chemin complet vers laStoreManagerInterface
classe?
use
pour la classe spécifique que j'ai indiquée, n'est-ce pas?