From 5c86a1660d436cf16448ae6c978237833e3e86b7 Mon Sep 17 00:00:00 2001 From: David King Date: Sat, 20 Oct 2012 17:16:14 -0400 Subject: [PATCH] [feature/controller] Don't allow a kernel listener to be added with no method PHPBB3-10864 --- phpBB/includes/event/kernel_compiler_pass.php | 5 +---- phpBB/language/en/app.php | 1 + 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/phpBB/includes/event/kernel_compiler_pass.php b/phpBB/includes/event/kernel_compiler_pass.php index 18b6661cd4..9a650bc404 100644 --- a/phpBB/includes/event/kernel_compiler_pass.php +++ b/phpBB/includes/event/kernel_compiler_pass.php @@ -44,10 +44,7 @@ class phpbb_event_kernel_compiler_pass implements CompilerPassInterface if (!isset($event['method'])) { - $event['method'] = 'on'.preg_replace(array( - '/(?<=\b)[a-z]/ie', - '/[^a-z0-9]/i' - ), array('strtoupper("\\0")', ''), $event['event']); + throw new InvalidArgumentException($user->lang('NO_METHOD_ATTRIBUTE', $id)); } $definition->addMethodCall('addListenerService', array($event['event'], array($id, $event['method']), $priority)); diff --git a/phpBB/language/en/app.php b/phpBB/language/en/app.php index db7f3164d0..2cbeaa2cba 100644 --- a/phpBB/language/en/app.php +++ b/phpBB/language/en/app.php @@ -49,6 +49,7 @@ $lang = array_merge($lang, array( // Event Listener/Subscriber error messages 'NO_EVENT_ATTRIBUTE' => 'Service "%1$s" must define the "event" attribute on "kernel.event_listener" tags.', + 'NO_METHOD_ATTRIBUTE' => 'Service "%1$s" must define the "method" attribute on "kernel.event_listener" tags.', 'SUBSCRIBER_WRONG_TYPE' => 'Service "%1$s" must implement interface "%2$s".', // Core error controller messages