Files
piratepoet/lib/Listing/BulkActionFactory.php
Jan Jakeš 54549ff037 Convert variable names to camel case
[MAILPOET-1796]
2020-01-14 15:22:42 +01:00

31 lines
974 B
PHP

<?php
namespace MailPoet\Listing;
class BulkActionFactory {
/** @var array */
private $actions = [];
public function registerAction($modelClass, $bulkActionMethod, $actionClass) {
$this->ensureMethodExists($actionClass, $bulkActionMethod);
$this->actions[$modelClass][$bulkActionMethod] = $actionClass;
}
public function getActionClass($modelClass, $bulkActionMethod) {
$resultingClass = $modelClass;
if (!empty($this->actions[$modelClass][$bulkActionMethod])) {
$resultingClass = $this->actions[$modelClass][$bulkActionMethod];
}
$this->ensureMethodExists($resultingClass, $bulkActionMethod);
return $resultingClass;
}
private function ensureMethodExists($actionClass, $bulkActionMethod) {
if (!method_exists($actionClass, $bulkActionMethod)) {
throw new \Exception(
(is_object($actionClass) ? get_class($actionClass) : $actionClass) . ' has no method "' . $bulkActionMethod . '"'
);
}
}
}