cancel
Showing results for 
Search instead for 
Did you mean: 

MassAction abstract class refactoring

0 Kudos

MassAction abstract class refactoring

Feature request from ldusan84, posted on GitHub May 02, 2016

Steps to reproduce

  1. Install Magento from develop branch.
  2. Create a class that extends Magento\Sales\Controller\Adminhtml\Order\AbstractMassAction.
  3. Use that mass action from dropdown.

Expected result

  1. No errors.

Actual result

  1. 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?

3 Comments
apiuser
New Member
Status changed to: Investigating
 
apiuser
New Member

Comment from piotrekkaminski, posted on GitHub May 11, 2016

@maksek please redirect to proper person

apiuser
New Member

Comment from NadiyaS, posted on GitHub May 18, 2016

Hi @ldusan84 , thank you for reporting this issue. Internal ticket was created MAGETWO-52955 to consider this problem.