public function register($hook,
$callback,
$priority = 0
) { if (is_string($hook) === false
) { throw InvalidArgument::
create(1, '$hook', 'string',
gettype($hook));
} if (is_callable($callback) === false
) { throw InvalidArgument::
create(2, '$callback', 'callable',
gettype($callback));
} if (InputValidator::
is_numeric_array_key($priority) === false
) { throw InvalidArgument::
create(3, '$priority', 'integer',
gettype($priority));
} if (!
isset($this->hooks
[$hook])) { $this->hooks
[$hook] =
[ $priority =>
[],
];
} elseif (!
isset($this->hooks
[$hook][$priority])) { $this->hooks
[$hook][$priority] =
[];
}