Qual é a melhor maneira de carregar o Cliente por ID? usando a interface do cliente ou a fábrica do cliente ou de outra maneira?
Na maioria das soluções que encontrei, isso é feito diretamente usando objectManager
(que nunca deve ser usado).
Qual é a melhor maneira de carregar o Cliente por ID? usando a interface do cliente ou a fábrica do cliente ou de outra maneira?
Na maioria das soluções que encontrei, isso é feito diretamente usando objectManager
(que nunca deve ser usado).
Respostas:
É sempre uma prática melhor usar contratos de serviço.
No seu caso, eu usaria \Magento\Customer\Api\CustomerRepositoryInterface
:
protected $_customerRepositoryInterface;
public function __construct(
....
\Magento\Customer\Api\CustomerRepositoryInterface $customerRepositoryInterface,
....
) {
....
$this->_customerRepositoryInterface = $customerRepositoryInterface;
}
Em seguida, no seu código, você pode chamar:
$customerId = 1;
$customer = $this->_customerRepositoryInterface->getById($customerId);