Feature request from ldusan84, posted on GitHub May 02, 2016
Steps to reproduce
- Install Magento from
develop
branch.
- Create a class that extends
Magento\Sales\Controller\Adminhtml\Order\AbstractMassAction
.
- Use that mass action from dropdown.
Expected result
- No errors.
Actual result
- PHP Fatal error: Call to a member function create() on null in /var/www/html/magento2/app/code/Magento/Sales/Controller/Adminhtml/Order/AbstractMassAction.php on line 54
There is a hidden dependency in https://github.com/magento/magento2/blob/develop/app/code/Magento/Sales/Controller/Adminhtml/Order/A...
It is not obvious that the child class requires collectionFactory to be injected so it's not transparent which objects are needed for this class to work.
I tried to create a PR for this, by moving the collection factory to constructor, but the problem is that for example this class:
https://github.com/magento/magento2/blob/develop/app/code/Magento/Sales/Controller/Adminhtml/Order/P...
Requires Magento\Sales\Model\ResourceModel\Order\Collection
and this one:
https://github.com/magento/magento2/blob/develop/app/code/Magento/Sales/Controller/Adminhtml/Shipmen...
Requires Magento\Sales\Model\ResourceModel\Order\Shipment\CollectionFactory
These two don't have the same parent class or interface, so it seems that it's not possible to type hint.
Any thoughts?