Saya sedang menulis modul pembayaran untuk Magento 2 sekarang dan saya sedang mengeceknya terhadap
"Kode Penyandi Program Kualitas Ekstensi Magento" CodeSniffer
( https://github.com/magento/marketplace-eqp ).
Untuk setiap kelas saya yang menggunakan objek sesi (checkout), CodeSniffer merespons dengan peringatan berikut:
Session object MUST NOT be requested in constructor. It can only be passed as a method argument.
Saya mendapatkan objek sesi dengan cara berikut:
/**
* Checkout session object
*
* @var \Magento\Checkout\Model\Session
*/
protected $checkoutSession;
/**
* Constructor
*
* @param \Magento\Checkout\Model\Session $checkoutSession
* @return void
*/
public function __construct(\Magento\Checkout\Model\Session $checkoutSession)
{
$this->checkoutSession = $checkoutSession;
}
Apakah ada cara yang benar untuk mendapatkan objek sesi?
Saya tidak dapat menemukan apa pun dalam kode inti Magento 2.
Saya hanya bisa menemukan kode di mana ia digunakan dengan cara yang persis sama dengan saya menggunakannya.
protected $checkoutSession;
hadapan Konstruktor