Aucune description

BulkActionController.php 812B

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. namespace MailPoet\Listing;
  3. if (!defined('ABSPATH')) exit;
  4. class BulkActionController {
  5. /** @var BulkActionFactory */
  6. private $factory;
  7. /** @var Handler */
  8. private $handler;
  9. public function __construct(
  10. BulkActionFactory $factory,
  11. Handler $handler
  12. ) {
  13. $this->factory = $factory;
  14. $this->handler = $handler;
  15. }
  16. public function apply($modelClass, array $data) {
  17. $bulkActionMethod = 'bulk' . ucfirst($data['action']);
  18. unset($data['action']);
  19. $actionClass = $this->factory->getActionClass($modelClass, $bulkActionMethod);
  20. $callback = [$actionClass, $bulkActionMethod];
  21. if (is_callable($callback)) {
  22. return call_user_func_array(
  23. $callback,
  24. [$this->handler->getSelection($modelClass, $data['listing']), $data]
  25. );
  26. }
  27. }
  28. }