Ho un'azione del controller in cui vorrei iniettare il repository del prodotto
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;
}
Indipendentemente dall'ordine in cui inserisco i miei argomenti del costruttore, l'iniezione di dipendenza di Magento inietta sempre una classe non valida per l' productRepository
argomento che porta PHP a lanciare e l'errore dell'argomento. Il storeManager
getd ha iniettato bene. Svuotare le cache non ha aiutato.
Ecco l'eccezione generata:
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.
I nomi delle classi e le posizioni degli argomenti nel messaggio di errore cambiano ma la definizione dell'errore è sempre la stessa. La rimozione di ProductRepositoryInterface
dal costruttore rende di nuovo tutto a posto.