我现在正在为Magento 2编写一个付款模块,并根据
“ Magento扩展质量程序编码标准” CodeSniffer
(https://github.com/magento/marketplace-eqp)对其进行检查。
对于我的每个使用(checkout)会话对象的类,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;
在建设者之前