Estou escrevendo um módulo de pagamento para o Magento 2 agora e comparando-o com o
CodeSniffer "Padrão de codificação do programa de qualidade de extensão Magento"
( https://github.com/magento/marketplace-eqp ).
Para todas as minhas classes que estão usando um objeto de sessão (checkout), o CodeSniffer responde com o seguinte aviso:
Session object MUST NOT be requested in constructor. It can only be passed as a method argument.
Estou recebendo o objeto de sessão da seguinte maneira:
/**
* 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;
}
Existe uma maneira correta de obter o objeto de sessão?
Não encontrei nada no código principal do Magento 2.
Só consegui encontrar o código onde é usado exatamente da mesma maneira que o uso.
protected $checkoutSession;
antes do Construtor