@claudiu Creanga it looks like if you rename or remove your registration.php that when you run the
module:status command after running
module:disable Your_Module, the module doesn't show up in the "List of disabled modules". Then if you run
setup:di:compile you won't see any errors, if there are any, for that module.
UPDATE: I was focusing on the di compilation and not focusing on the error message you shared. Your solution is here: http://magento-quickies.alanstorm.com/post/138686669515/quick-note-on-already-exists-in-context-object . Your problem doesn't have anything to do with a module not being disabled. It's a matter of doubly injecting an interface.
- Looks like you'll want to go to your
- Look for the
StoreManagerInterface being passed as an argument to your constructor and remove that and the comma from the line above (if there is one)
- Then, in the body of the constructor, there will probably be something like
$this->_storeManager = $storeManager or
$this->_storeManagerInterface = $storeManagerInterface (I don't have the extension, so I can't give you an exact answer; But if you'd like to post your code I can show you exactly what to change); Make sure you're assigning
$this->_storeManager = $context->getStoreManager() instead of an instance of the
If you check
Magento\Framework\View\Element\Template\Context class you'll see the
getStoreManager() method, which returns an instance of
\Magento\Store\Model\StoreManagerInterface, therefore the error you're seeing is Magento telling you that this StoreManagerInterface is already available, so no need to inject it into the Navigation block's constructor.
One of the things that intrigued me from Alan's article, was that these errors aren't shown in Developer mode, only when we explicitly run the
I hope this helps.