Ich habe eine Controller-Aktion, in die ich das Produkt-Repository einfügen möchte
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;
}
Unabhängig von der Reihenfolge, in der ich meine Konstruktorargumente anordne, injiziert Magentos Abhängigkeitsinjektion immer eine ungültige Klasse für das productRepositoryArgument, das PHP veranlasst, Fehler zu werfen und zu argumentieren. Der storeManagerGetd spritzt prima. Das Löschen der Caches hat nicht geholfen.
Hier ist die Ausnahme geworfen:
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.
Die Klassennamen und Argumentpositionen in der Fehlermeldung ändern sich, aber die Fehlerdefinition ist immer dieselbe. Wenn Sie das ProductRepositoryInterfaceaus dem Konstruktor entfernen, ist alles wieder in Ordnung.