Brincando com o Magento 2, mas me deparei com um problema que não consigo entender. O gerenciador de objetos tenta instanciar a classe Abstract, isso gera um erro fatal. Alguém sabe o que pode causar isso ou me aponta na direção certa?
O erro
Fatal error: Cannot instantiate abstract class Magento\Framework\Model\Resource\AbstractResource in /lib/internal/Magento/Framework/ObjectManager/Factory/Dynamic/Developer.php on line 75
O problema
Meu módulo possui um modelo que estende o \Magento\Quote\Model\Quote
. O construtor deste modelo tem a seguinte linha injetando isso:
\Magento\Framework\Model\Resource\AbstractResource $resource = null,
.
O controlador que está instanciando o modelo estende \Magento\Backend\App\Action
e usa $this->_objectManager->create()
para instanciar o modelo.
O que eu não consigo entender é que, se eu instanciar o modelo Magento, ele simplesmente funciona, mas se eu instanciar meu modelo, ele tenta instanciar essa classe abstrata, lançando o erro acima. O que instrui o gerenciador de objetos a fazer isso e como posso resolver meu problema?
Meu primeiro pensamento foi que o Magento usa o di.xml
para substituir isso, executar isso ou algo assim, esse não era o caso.
Obrigado por tomar o tempo para ler este. Qualquer ajuda ou contribuição sobre este assunto é apreciada.
__construct
método do seu modelo.