From 03be9761375a082c2a43aceaa1b34661f87d702b Mon Sep 17 00:00:00 2001 From: Igor Wiedler Date: Sat, 7 Jan 2012 21:42:19 +0100 Subject: [feature/event-dispatcher] Support setting data on an event PHPBB3-9550 --- phpBB/includes/event/data.php | 56 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 phpBB/includes/event/data.php (limited to 'phpBB/includes/event/data.php') diff --git a/phpBB/includes/event/data.php b/phpBB/includes/event/data.php new file mode 100644 index 0000000000..754876c119 --- /dev/null +++ b/phpBB/includes/event/data.php @@ -0,0 +1,56 @@ +set_data($data); + } + + public function set_data(array $data = array()) + { + $this->data = $data; + } + + public function get_data() + { + return $this->data; + } + + public function offsetExists($offset) + { + return isset($this->data[$offset]); + } + + public function offsetGet($offset) + { + return isset($this->data[$offset]) ? $this->data[$offset] : null; + } + + public function offsetSet($offset, $value) + { + $this->data[$offset] = $value; + } + + public function offsetUnset($offset) + { + unset($this->data[$offset]); + } +} -- cgit v1.2.1 From e02d92ac62fbe1dc08994444c18a7447d72c56e6 Mon Sep 17 00:00:00 2001 From: Igor Wiedler Date: Sun, 11 Mar 2012 15:14:13 +0100 Subject: [feature/event-dispatcher] Use real EventDispatcher through composer * replace the copy-pasta EventDispatcher with the real one from Symfony2 * use composer for managing this dependency, use composer autoloading PHPBB3-9550 --- phpBB/includes/event/data.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'phpBB/includes/event/data.php') diff --git a/phpBB/includes/event/data.php b/phpBB/includes/event/data.php index 754876c119..62e2f2312e 100644 --- a/phpBB/includes/event/data.php +++ b/phpBB/includes/event/data.php @@ -15,7 +15,9 @@ if (!defined('IN_PHPBB')) exit; } -class phpbb_event_data extends phpbb_event implements ArrayAccess +use Symfony\Component\EventDispatcher\Event; + +class phpbb_event_data extends Event implements ArrayAccess { private $data; -- cgit v1.2.1 From be23445b8c40b99c0d27bfb99521022d7b4705e8 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Fri, 3 Feb 2012 02:17:49 -0500 Subject: [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(+) (limited to 'phpBB/includes/event/data.php') 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]); -- cgit v1.2.1 From 28b67d24e4164d4da511af42f26170ddc7376c90 Mon Sep 17 00:00:00 2001 From: Igor Wiedler Date: Thu, 29 Mar 2012 08:43:42 +0200 Subject: [feature/event-dispatcher] Fix docblock in phpbb_event_data PHPBB3-10732 --- phpBB/includes/event/data.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'phpBB/includes/event/data.php') diff --git a/phpBB/includes/event/data.php b/phpBB/includes/event/data.php index 5780ddbfff..47cb2d5a30 100644 --- a/phpBB/includes/event/data.php +++ b/phpBB/includes/event/data.php @@ -36,11 +36,11 @@ 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. - */ + /** + * 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)); -- cgit v1.2.1 From 951e2c8d0c32e6c2bcae02e2f2ff8be35af35b36 Mon Sep 17 00:00:00 2001 From: Igor Wiedler Date: Fri, 30 Mar 2012 14:22:20 +0200 Subject: [feature/event-dispatcher] Fix copyright years PHPBB3-9550 --- phpBB/includes/event/data.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'phpBB/includes/event/data.php') diff --git a/phpBB/includes/event/data.php b/phpBB/includes/event/data.php index 47cb2d5a30..70718ff0ae 100644 --- a/phpBB/includes/event/data.php +++ b/phpBB/includes/event/data.php @@ -2,7 +2,7 @@ /** * * @package phpBB3 -* @copyright (c) 2011 phpBB Group +* @copyright (c) 2012 phpBB Group * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 * */ -- cgit v1.2.1