Di sebagian besar konstruktor kelas, objek konteks dilewatkan. Saya tidak bisa mengerti bagaimana Obj Konteks ini bekerja. Saya juga memperhatikan bahwa kadang-kadang ini diteruskan ke konstruktor kelas induk seperti di bawah ini.
public function __construct(
\Magento\Framework\App\Action\Context $context,
\Magento\Catalog\Model\Design $catalogDesign,
\Magento\Catalog\Model\Session $catalogSession,
....
parent::__construct(
$context,
$layoutFactory,
Bisakah Anda jelaskan bagaimana objek konteks khusus ini bekerja?
sumber
$context
?Objek konteks diperkenalkan untuk mengisolasi pengembang pihak ketiga dari perubahan konstruktor kelas abstrak.
Di Magento 1, kelas abstrak dengan banyak perilaku "pembantu" dianggap sebagai API yang nyaman untuk kelas extender. Hal ini menyebabkan sejumlah besar metode dan dependensi implisit dalam kelas abstrak (
AbstractModel
,AbstractBlock
,AbstractAction
)Di Magento 2 API berbasis warisan (lebih tepatnya SPI) tidak disarankan, tetapi banyak API warisan yang masih ada. Awalnya kami berencana untuk secara bertahap menghapus perilaku ekstra dari kelas abstrak. Dan untuk tidak menghancurkan semua ekstender ketika kami akan menghapus beberapa dependensi dari konstruktor, kami memperkenalkan objek Context.
Rencana saat ini adalah meninggalkan API berbasis warisan dengan API berbasis antarmuka di beberapa titik.
sumber