* This file is part of the ManageWP Worker plugin.
* (c) ManageWP LLC <contact@managewp.com>
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
class MWP_Action_Definition
private static $defaultOptions = array(
* First parameter is callback to be executed.
* Second parameter accepts the following option names:
* - 'hook_name' - WordPress hook to attach the action to.
* - 'hook_priority' - WordPress hook priority; used only when 'hook_name' is set.
* @param callable $callback
public function __construct($callback, array $options = array())
$this->validateOptions($options);
$options += self::$defaultOptions;
$this->callback = $callback;
$this->options = $options;
private function validateOptions(array $options)
foreach ($options as $optionName => $optionDefault) {
if (!array_key_exists($optionName, self::$defaultOptions)) {
throw new InvalidArgumentException(sprintf('Option "%s" is not registered, valid options are "%s"', $optionName, implode('", "', array_keys(self::$defaultOptions))));
public function getCallback()
public function getOption($name)
if (!array_key_exists($name, $this->options)) {
throw new InvalidArgumentException(sprintf('Option "%s" is not recognized', $name));
return $this->options[$name];