| | <?php |
| |
|
| | namespace Kanboard\Core\Plugin; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | class Hook |
| | { |
| | |
| | |
| | |
| | |
| | |
| | |
| | private $hooks = array(); |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function on($hook, $value) |
| | { |
| | if (! isset($this->hooks[$hook])) { |
| | $this->hooks[$hook] = array(); |
| | } |
| |
|
| | $this->hooks[$hook][] = $value; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function getListeners($hook) |
| | { |
| | return isset($this->hooks[$hook]) ? $this->hooks[$hook] : array(); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function exists($hook) |
| | { |
| | return isset($this->hooks[$hook]); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function merge($hook, array &$values, array $params = array()) |
| | { |
| | foreach ($this->getListeners($hook) as $listener) { |
| | $result = call_user_func_array($listener, $params); |
| |
|
| | if (is_array($result) && ! empty($result)) { |
| | $values = array_merge($values, $result); |
| | } |
| | } |
| |
|
| | return $values; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function first($hook, array $params = array()) |
| | { |
| | foreach ($this->getListeners($hook) as $listener) { |
| | return call_user_func_array($listener, $params); |
| | } |
| |
|
| | return null; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function reference($hook, &$param) |
| | { |
| | foreach ($this->getListeners($hook) as $listener) { |
| | $listener($param); |
| | } |
| |
|
| | return $param; |
| | } |
| | } |
| |
|