Eu tenho uma ação de controlador na qual gostaria de injetar o repositório do produto
namespace Nosto\Tagging\Controller\Export;
use Magento\Catalog\Api\ProductRepositoryInterface;
use Magento\Store\Model\StoreManagerInterface;
use Magento\Backend\App\Action;
use Magento\Framework\App\Action\Context;
class Test extends Action
{
private $_productRepository;
public function __construct(
Context $context,
StoreManagerInterface $storeManager,
ProductRepositoryInterface $productRepository
) {
parent::__construct($context);
$this->_storeManager = $storeManager;
$this->_productRepository = $productRepository;
}
Não importa em que ordem eu coloquei meus argumentos de construtor, a injeção de dependência do Magento sempre injeta uma classe inválida para o productRepository
argumento que leva o PHP a lançar e erro de argumento. O storeManager
getd injetou muito bem. Limpar os caches não ajudou.
Aqui está a exceção lançada:
Recoverable Error: Argument 3 passed to Nosto\Tagging\Controller\Export\Test::__construct() must implement interface Magento\Catalog\Api\ProductRepositoryInterface, instance of Nosto\Tagging\Helper\Account given.
Os nomes de classe e posições de argumento na mensagem de erro mudam, mas a definição de erro é sempre a mesma. A remoção ProductRepositoryInterface
do construtor torna tudo bem novamente.