From be23445b8c40b99c0d27bfb99521022d7b4705e8 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Fri, 3 Feb 2012 02:17:49 -0500 Subject: [PATCH] [feature/event-dispatcher] Add get_data_filtered function to event data. Its purpose is to discard any keys added by hooks to data stored in the event, such that only keys that the ledge knows how to handle are processed. PHPBB3-9550 --- phpBB/includes/event/data.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/phpBB/includes/event/data.php b/phpBB/includes/event/data.php index 62e2f2312e..5780ddbfff 100644 --- a/phpBB/includes/event/data.php +++ b/phpBB/includes/event/data.php @@ -36,6 +36,16 @@ class phpbb_event_data extends Event implements ArrayAccess return $this->data; } + /* + * Returns data filtered to only include specified keys. + * + * This effectively discards any keys added to data by hooks. + */ + public function get_data_filtered($keys) + { + return array_intersect_key($this->data, array_flip($keys)); + } + public function offsetExists($offset) { return isset($this->data[$offset]);