ฉันอาจจะพลาดจุดหนึ่ง แต่ฉันแค่สงสัยว่าทำไมบางครั้งมีคำสั่ง "ใช้" สำหรับชั้นเรียนที่เฉพาะเจาะจงและบางครั้งเราไม่
ตัวอย่าง: app\code\Magento\Email\Model\Template.php
เรามีที่ด้านบนของไฟล์:
namespace Magento\Email\Model;
use Magento\Store\Model\ScopeInterface;
use Magento\Store\Model\StoreManagerInterface;
จากนั้นใน__construct
วิธีการเรามีพารามิเตอร์ต่อไปนี้:
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;
ที่ด้านบนของชั้นเรียนเราสามารถทำได้StoreManagerInterface $storeManager
ในพารามิเตอร์ตัวสร้าง
คำถามของฉันคือ:
- เหตุใดเราจึงทำเช่นนี้สำหรับชั้นเรียนเดียวเท่านั้น
- ทำไมเราไม่สามารถเพิ่ม
use
คำสั่งสำหรับทุกคลาสของนวกรรมิกดังนั้นเราจึงไม่ต้องพิมพ์เส้นทางแบบเต็ม? - หรือวิธีอื่น ๆ ทำไมเราไม่กำจัด
use
คำสั่งและพิมพ์เส้นทางแบบเต็มไปยังStoreManagerInterface
ชั้นเรียน
use
สำหรับชั้นเรียนเฉพาะที่ฉันชี้ไปใช่มั้ย