From cb7dabbffc7ea5e2acffaa6fed96ea682f93581d Mon Sep 17 00:00:00 2001 From: David King Date: Wed, 28 Mar 2012 16:13:59 -0400 Subject: [PATCH] [ticket/10586] Change the interface to an abstract class This allows the common phpBB objects to be automatically accessible to extensions without the author having to globalize and assign each one himself. This is better because it also gives purpose to the phpbb_extension_controller class; instead of just being the way to ensure a handle() method is present, it also does this work for us. PHPBB3-10586 --- phpBB/includes/extension/controller.php | 85 +++++++++++++++++++ .../extension/controller_interface.php | 31 ------- phpBB/index.php | 2 +- phpBB/language/en/common.php | 2 +- 4 files changed, 87 insertions(+), 33 deletions(-) create mode 100644 phpBB/includes/extension/controller.php delete mode 100644 phpBB/includes/extension/controller_interface.php diff --git a/phpBB/includes/extension/controller.php b/phpBB/includes/extension/controller.php new file mode 100644 index 0000000000..985aded862 --- /dev/null +++ b/phpBB/includes/extension/controller.php @@ -0,0 +1,85 @@ +request =& $request; + $this->db =& $db; + $this->user =& $user; + $this->template =& $template; + $this->config =& $config; + + $this->phpEx = $phpEx; + $this->phpbb_root_path = $phpbb_root_path; + } + + /** + * Handle the request to display a page from an extension + * + * @return null + */ + abstract public function handle(); +} diff --git a/phpBB/includes/extension/controller_interface.php b/phpBB/includes/extension/controller_interface.php deleted file mode 100644 index bcc8972db4..0000000000 --- a/phpBB/includes/extension/controller_interface.php +++ /dev/null @@ -1,31 +0,0 @@ -variable('ext', '')) $controller = new $class; - if (!($controller instanceof phpbb_extension_controller_interface)) + if (!($controller instanceof phpbb_extension_controller)) { send_status_line(500, 'Internal Server Error'); trigger_error($user->lang('EXTENSION_CLASS_WRONG_TYPE', $class)); diff --git a/phpBB/language/en/common.php b/phpBB/language/en/common.php index 94edddc6f5..300529f967 100644 --- a/phpBB/language/en/common.php +++ b/phpBB/language/en/common.php @@ -186,7 +186,7 @@ $lang = array_merge($lang, array( 'EXPAND_VIEW' => 'Expand view', 'EXTENSION' => 'Extension', 'EXTENSION_CONTROLLER_MISSING' => 'The extension %s is missing a controller class and cannot be accessed through the front-end.', - 'EXTENSION_CLASS_WRONG_TYPE' => 'The extension controller class %s is not an instance of the phpbb_extension_controller_interface.', + 'EXTENSION_CLASS_WRONG_TYPE' => 'The extension controller class %s is not an instance of the phpbb_extension_controller.', 'EXTENSION_DISABLED' => 'The extension %s is not enabled.', 'EXTENSION_DISABLED_AFTER_POSTING' => 'The extension %s has been deactivated and can no longer be displayed.', 'EXTENSION_DOES_NOT_EXIST' => 'The extension %s does not exist.',