Saya mungkin kehilangan satu poin tetapi saya hanya bertanya-tanya mengapa kadang-kadang ada pernyataan "gunakan" untuk kelas tertentu dan terkadang kita tidak.
Contoh:, app\code\Magento\Email\Model\Template.php
kami ada di bagian atas file:
namespace Magento\Email\Model;
use Magento\Store\Model\ScopeInterface;
use Magento\Store\Model\StoreManagerInterface;
Kemudian dalam __construct
metode ini kita memiliki parameter berikut:
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 = []
)
Jadi kita dapat dengan jelas melihat bahwa ketika kita memanggil use Magento\Store\Model\StoreManagerInterface;
bagian atas kelas, kita dapat melakukannya StoreManagerInterface $storeManager
di parameter konstruktor.
Pertanyaan saya adalah:
- Mengapa kita melakukan ini hanya untuk satu kelas?
- Mengapa kita tidak bisa menambahkan
use
pernyataan untuk setiap kelas konstruktor sehingga kita tidak perlu mengetikkan path kelas penuh? - Atau sebaliknya, mengapa kita tidak menyingkirkan
use
pernyataan itu dan mengetikkan path lengkap keStoreManagerInterface
kelas?
use
untuk kelas spesifik yang saya tunjuk kan?