私は現在Magento 2の支払いモジュールを書いており、
「Magento Extension Quality Program Coding Standard」CodeSniffer
(https://github.com/magento/marketplace-eqp)と照合しています。
(チェックアウト)セッションオブジェクトを使用しているすべてのクラスに対して、CodeSnifferは次の警告で応答します。
Session object MUST NOT be requested in constructor. It can only be passed as a method argument.
次の方法でセッションオブジェクトを取得しています。
/**
* 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;
}
セッションオブジェクトを取得する正しい方法はありますか?
Magento 2のコアコードには何も見つかりませんでした。
私はそれを使用するのとまったく同じ方法で使用されているコードを見つけることができました。
protected $checkoutSession;
コンストラクタの前に逃した