J'ai une action de contrôleur dans laquelle je voudrais injecter le référentiel produit
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;
}
Peu importe l'ordre dans lequel je mets mes arguments de constructeur, l'injection de dépendance de Magento injecte toujours une classe non valide pour l' productRepository
argument menant PHP à lancer et l'erreur d'argument. Le storeManager
getd s'injecta très bien. Vider les caches n'a pas aidé.
Voici l'exception levée:
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.
Les noms de classe et les positions des arguments dans le message d'erreur changent, mais la définition d'erreur est toujours la même. Le retrait ProductRepositoryInterface
du constructeur rend tout à nouveau correct.